반응형
SMALL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #-*- coding: utf-8 -*- import wx class MyFram(wx.Frame): def __init__(self, parent, title): super(MyFram, self).__init__(parent, title=title, size=(300, 500)) # 생성자에서 UI 초기화 하는 메소드를 호출하는 구조로 만든다. self.InitUI() self.Center() self.Show() def InitUI(self): # panel 객체의 참조값 얻어오기 panel=wx.Panel(self) # 일반 버튼 객체 만들기 btn1=wx.Button(panel, label=u"눌러보셈", pos=(5, 5)) # 토글 버튼 btn2=wx.ToggleButton(panel, label=u"토글버튼", pos=(100, 5)) # 일반 버튼 btn3=wx.Button(panel, label=u"종료", pos=(195, 5)) # 버튼 이벤트 처리 메소드 등록하기 btn1.Bind(wx.EVT_BUTTON, self.Btn1Clicked) btn2.Bind(wx.EVT_TOGGLEBUTTON, self.Btn2Clicked) btn3.Bind(wx.EVT_BUTTON, self.Btn3Clicked) def Btn1Clicked(self, event): # 메세지 다이얼로그 띄우기 dlg=wx.MessageDialog(self, u"메세지", u"제목", wx.OK) dlg.ShowModal() dlg.Destroy() print u"BtnClicked() 리턴됨!" def Btn2Clicked(self, event): # 토글 버든의 상태를 bool type 으로 얻어올수 있다. # 눌러진 버튼의 참조값을 얻어와서 처리할 수 있다. isActive=event.GetEventObject().GetValue() if isActive: print "activated!" else: print "not activated!" def Btn3Clicked(self, event): self.Close(True) if __name__ == "__main__": app=wx.App() MyFram(None, title="버튼 테스트") app.MainLoop() | cs |
pos를 이용해서 x, y 좌표로 생각을 해서 위치를 잡아줘
메세지 다이얼로그 띄우기
이 코드로 인해서
눌러보셈을 클릭 했을때
위와 같이 메세지창이 뜨고 OK를 누르면
콘솔 창에 이렇게 출력 됌
토글 버튼과 종료버튼 처리
이 소스 코드로 인해
토글 버튼을 눌렀을때 Boolean 값으로 상태 처리 가능하고, 종료 버튼을 누르면 창이 없어지는 것을 확인할 수 있다.
정적인 텍스트 출력
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #-*- coding: utf-8 -*- import wx class MyFrame(wx.Frame): def __init__(self, parent, title): super(MyFrame, self).__init__(parent, title=title,\ size=(300, 500)) #생성자에서 UI 초기화 하는 함수들 호출하는 구조로 만든다. self.InitUI() self.Center() self.Show() # UI 초기화 하는 함수 정의 def InitUI(self): #Panel 객체 panel=wx.Panel(self) #일반 버튼 btn1=wx.Button(panel, label="눌러보셈", pos=(5, 5)) #토글 버튼 btn2=wx.ToggleButton(panel, label="토글버튼", pos=(100, 5)) btn3=wx.Button(panel, label="종료", pos=(195, 5)) # 각각의 버튼에 고유한 아이디 부여하기 btn1.id=1 btn2.id=2 btn3.id=3 # 세개의 버튼에 동일한 함수를 등록한다. btn1.Bind(wx.EVT_BUTTON, self.BtnClicked) btn2.Bind(wx.EVT_TOGGLEBUTTON, self.BtnClicked) btn3.Bind(wx.EVT_BUTTON, self.BtnClicked) # 정적인 텍스트 출력 (label) wx.StaticText(panel, label="아이디", pos=(5,40)) wx.StaticText(panel, label="비밀번호", pos=(5, 70)) # 텍스트 컨트롤 (문자열 입력창) self.inputId=wx.TextCtrl(panel, pos=(100, 40)) self.inputPwd=wx.TextCtrl(panel, pos=(100, 70)) #로그인 버튼 loginBtn = wx.Button(panel, label="로그인", pos=(100, 100)) #로그인 버튼을 눌렀을때 호출되는 함수 등록 loginBtn.Bind(wx.EVT_BUTTON, self.LoginBtnClicked) def LoginBtnClicked(self, event): # 입력한 아이디와 비밀번호를 읽어온다. id = self.inputId.GetValue() pwd = self.inputPwd.GetValue() msg = None if id == "gura" and pwd == "1234": msg="gura 회원님 반갑습니다." else: msg="아이디 혹은 비밀번호가 틀려요" dlg=wx.MessageDialog(self, msg, "알림", wx.OK) dlg.ShowModal() dlg.Destroy() # 3개의 버튼중 하나를 눌렀을때 호출되는 함수 def BtnClicked(self, event): # 눌러진 버튼의 참조값 얻어오기 btn = event.GetEventObject() # 눌러진 버튼의 아이디 값 얻어오기 if btn.id == 1: print "btn1 !" elif btn.id == 2: print "btn2 !" elif btn.id == 3: print "btn3 !" if __name__ == "__main__": app=wx.App() MyFrame(None, title="버튼") app.MainLoop() | cs |
이 코드로 아이디 , 비밀번호 입력창을 만들어서
임의로 로그인 처리를 해 본 것.
반응형
'FrameWork > Python' 카테고리의 다른 글
파이썬 설치하기 - 파이참 (0) | 2021.07.18 |
---|---|
wx sample (0) | 2017.08.16 |
파이썬 wx2 (0) | 2017.08.16 |
파이썬 wx2 (0) | 2017.08.12 |
파이썬 wx 의 Hello world! (0) | 2017.08.12 |