본문 바로가기

wxPython

파이썬GUI, 개발자 정보 입력, 파이썬 개발자 정보 AboutBox

반응형

 

개요 

    가끔 프로그램을 만들다 보면 개발자 정보를 입력하고 싶을 때가 있다. 오류 났을 때 필요한 연락처를 적기도 하고, 또 같이 개발한 사람들끼리 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()

 

 

 

 

 

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

 

반응형