wxPython으로 텍스트 입력을 얻는 GUI 만들기

7586 단어 GUI파이썬wxpython

목적



wxPython 모듈을 사용하여 텍스트 입력을 허용하는 창을 만듭니다.

저자는 wxPython 경력 1 시간 강하기 때문에 최적의 기술임을 보증하지 않습니다.

진정한 목적()


  • Python3에서는 input()를 사용하면 명령 줄에서 사용자의 텍스트 입력을받을 수 있습니다.
  • 그런데 Python2에서는 이것은 input_raw()라는 함수가 아니면 안된다.

  • Python2계에서도 Python3계에서도 사용할 수 있는 GUI의 텍스트 취득 방법을 원한다는 배경이 있거나 했다.

    소스 코드


    TextCtrl라는 Widget이 있는 것 같지만, 공식의 Wiki?에 사용법의 설명이 없었기 때문에 김으로 썼다.

    Reference은 이다. 하지만 이것이라면 경험 1시간의 초보자로는 조립의 이미지를 모른다.

    어쨌든 Class 구현이지만 이런 느낌으로 할 수 있었다.
    다음 기사 덕분에 매우 도움이되었습니다. 고마워요.
    htps : // 넉넉하게 30. 하테나 bぉg. 코m/엔트리/2017/09/24/220000
    import wx
    
    
    class GUIinput:
        def __init__(self):
            self.frame = wx.Frame(None, -1, "textbox")
            self.frame.SetTitle('Write Text Here')
            panel_ui = wx.Panel(self.frame, -1, pos=(50, 50), size=(100, 50)) 
    
            # message
            self.frame.label = wx.StaticText(panel_ui, -1, 'Write some message here', pos=(10, 10))
            # text box
            self.frame.box = wx.TextCtrl(panel_ui, -1, pos=(10, 30),style=wx.TE_PROCESS_ENTER)
            self.frame.box.Bind(wx.EVT_TEXT_ENTER, self.Clicked) #text enter
    
            # button        
            btn = wx.Button(panel_ui, -1, 'OK', pos=(10, 60))
            btn.Bind(wx.EVT_BUTTON, self.Clicked)
    
            self.frame.Show(True)
    
        def Clicked(self,event):
            self.text = self.frame.box.GetValue()
            self.frame.Close(True)
    
    
    app = wx.App()
    frame = GUIinput()
    app.SetTopWindow(frame.frame)
    app.MainLoop()
    
    print(frame.text)
    

    외형



    왠지 사이즈 지정이나 위치 지정이 가바이.

    Object의 높이의 간격은 대략 20~30pix로 하면 좋다고 생각한다.



    의문


  • 클래스 구현이 아니면 안 되는가
  • 더 쉽게 할 수 없는가
  • GUI 수동으로 배치할 수 없는지…
  • 좋은 웹페이지 즐겨찾기