본문 바로가기

wxPython

파이썬 GUI, 공지메시지 Notification Message

반응형

시작메뉴 우측 하단 알림영역에 뜨는 Notification Message

개요 

    프로그램에서 시작메뉴 우측 하단 알림영역에 공지 메시지를 띄워야 하는 경우가 있다. 예를 들어, 새로운 이메일이 도착했거나, 새로운 메시지, 시스템 업데이트, 혹은 보안경고 등을 알려야 하는 경우이다. 이런 경우에 Notification Message 기능을 활용하는 법을 알아보자. 

 

 

wx.adv.NotificationMessage 

    공지 메시지 클래스는 기능이 꽤 유용한 데 비해 선언이 매우 쉽다. 

noti = wx.adv.NotificationMessage("알림", message="알림 메시지 입니다!", 
                                  parent=None, flags=wx.ICON_INFORMATION)
noti.Show()

    우선 wx.adv.NotificationMessage에 인수를 전달해준다. 인수의 순서는 title, message, parent, flag 순서이다. 그리고 마지막으로 .Show()를 해 주면 끝이다. 알림영역에 뜨는 공지창은 아래와 같은 형식인데, 맨 위에 "Python"으로 뜨는 것은 신경쓰지 않아도 된다. 나중에 pyinstaller로 exe파일을 만들고 나면, 해당 exe파일의 이름으로 바뀌게 된다. 

 

 

예제 

    혹시 아래 예제를 실행시키고 나서 글자의 해상도가 매우 떨어져 보여 흉하다면, 중간에 모니터 스크린의 해상도를 제대로 찾아주면 되는 일인데, 네 줄 코드로 개선할 수 있다. 

반응형
import ctypes
try:
    ctypes.windll.shcore.SetProcessDpiAwareness(True)
except:
    pass

    예제가 간단하므로 바로 Ctrl+C/V 해서 확인해보자. 

import wx
from wx.adv import *

class Example(wx.Frame):
    def __init__(self, parent, id):
        wx.Frame.__init__(self,parent,id,'Notification Message', size=(350,150))
        # 사용자 코드
        panel = wx.Panel(self, -1)

        st = wx.StaticText(panel, -1, "Notification Message 예제\n스크린 우측 하단 알림영역에서 확인가능!")
        font = wx.Font(15, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD)
        st.SetFont(font)
        bsizer = wx.BoxSizer(wx.HORIZONTAL)
        bsizer.Add(st, -1, wx.EXPAND|wx.ALL, 10)


        noti = wx.adv.NotificationMessage("알림", message="알림 메시지 입니다!", parent=None, flags=wx.ICON_INFORMATION)
        noti.Show()

        panel.SetSizer(bsizer)



if __name__=="__main__":
    app = wx.App()
    frame=Example(parent=None, id=-1)
    frame.Show()
    app.MainLoop()

 

 

 

 

    도움되셨다면 하트(♥) 부탁드리고, 더 궁금한 사항은 댓글로 남겨주세요 :) 

 

 

 

반응형