반응형
개요
가끔 프로그램을 만들다 보면 개발자 정보를 입력하고 싶을 때가 있다. 오류 났을 때 필요한 연락처를 적기도 하고, 또 같이 개발한 사람들끼리 Developers 이름을 적기도 한다. wxPython에는 마침 이 기능을 손쉽게 사용할 수 있도록 다이얼로그 형식으로 미리 정의된 클래스가 있다. 그것이 바로 AboutBox(wx.adv.AboutBox)이다. AboutBox는 단독으로 쓰기보다는 다이얼로그 안에 들어갈 내용을 정의해주는 AboutDialogInfo(wx.adv.AboutDialogInfo) 클래스와 함께 사용되는 것이 일반적이다. 이 둘을 사용하여 개발자 정보를 보여주는 다이얼로그를 구현해보자.
AboutBox 함수와 AboutDialogInfo 클래스
개발자 정보 다이얼로그인 어바웃박스(wx.adv.AboutBox)는 먼저 그 안에 들어갈 내용을 담은 어바웃다이얼로그인포(wx.adv.AboutDialogInfo)를 먼저 선언하여 그 안의 속성값들을 정의해준 뒤에, 이 값을 어바웃박스에 인수로 넘겨주는 형태로 정의된다.
# AboutBox에 들어갈 AboutDialogInfo 객체 생성
aboutInfo = wx.adv.AboutDialogInfo()
# 객체 속성 설정
aboutInfo.SetName("MyApp")
aboutInfo.SetVersion("v0.1")
aboutInfo.SetDescription("My First wxApplication!")
aboutInfo.SetCopyright("(C) 2022-2023")
aboutInfo.SetWebSite("http:#hexa-coding.tistory.com")
aboutInfo.AddDeveloper("wx.Factory\nwx.Python\nwx.Friends\n...")
# 앞서 정의한 aboutInfo를 기반으로 한 AboutBox 생성
wx.adv.AboutBox(aboutInfo)
사용이 어렵지 않으니 바로 예제를 통해 알아보자.
예제
반응형
import wx
import wx.adv
class Example(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self,parent,id,'Microsoft Excel', size=(400,300))
# 사용자 코드
panel = wx.Panel(self, -1)
# 메뉴를 담을 메뉴바 생성
menubar = wx.MenuBar()
# File 메뉴 버튼과 그 하위 항목
file_menu = wx.Menu()
file_menu.Append(wx.ID_ANY, "Open...", '파일 열기') # 차례로 id / 메뉴항목 / 상태표시줄 텍스트
file_menu.Append(wx.ID_ANY, "Exit", '프로그램을 종료합니다.')
# Edit 메뉴 버튼과 그 하위 항목
help_menu = wx.Menu()
help_menu.Append(11, "About", '정보')
# 앞서 정의한 File 메뉴와 Edit 메뉴를 "메뉴바"에 붙인다.
menubar.Append(file_menu, "File")
menubar.Append(help_menu, "Help")
# 메뉴바를 "self" (=MenubarExampleFrame)에 세팅하고 사용자에게 보여준다.
self.SetMenuBar(menubar)
# 프레임 하단에 상태표시줄을 만든다.
status = self.CreateStatusBar()
self.Center()
# id가 11인 Help Menu의 About 항목에 OnAbout 함수 바인딩.
# 함수가 실행되면 개발 정보가 뜬다.
self.Bind(wx.EVT_MENU, self.OnAbout, id=11)
# 개발정보 띄우기
def OnAbout(self, event):
# AboutBox에 들어갈 AboutDialogInfo 객체 생성
aboutInfo = wx.adv.AboutDialogInfo()
# 객체 속성 설정
aboutInfo.SetName("MyApp")
aboutInfo.SetVersion("v0.1")
aboutInfo.SetDescription("My First wxApplication!")
aboutInfo.SetCopyright("(C) 2022-2023")
aboutInfo.SetWebSite("http:#hexa-coding.tistory.com")
aboutInfo.AddDeveloper("wx.Factory\nwx.Python\nwx.Friends\n...")
# 앞서 정의한 aboutInfo를 기반으로 한 AboutBox 생성
wx.adv.AboutBox(aboutInfo)
if __name__=="__main__":
app = wx.App()
frame=Example(parent=None, id=-1)
frame.Show()
app.MainLoop()
도움되셨다면 하트(♥) 부탁드리고, 더 궁금한 사항은 댓글로 남겨주세요 :)
반응형
'wxPython' 카테고리의 다른 글
파이썬 GUI, 그리드, 테이블, 표 wx.Grid (0) | 2023.06.02 |
---|---|
파이썬 GUI, 글자 해상도 선명하게 바꾸기, 해상도, DPI 조절 (0) | 2023.05.26 |
파이썬 GUI, 공지메시지 Notification Message (0) | 2023.05.26 |
파이썬 GUI, Matplotlib 그래프, 차트, 이미지 띄우기 (0) | 2023.05.03 |
파이썬 GUI, 로딩시 로고화면 넣기, 스플래시 스크린 Advanced Splash (0) | 2023.04.30 |