python wxpython共通コントロールインスタンス


詳細については、ページを参照してください.http://www.yiibai.com/wxpython/wxpython_drawing_api.html
コンポーネントコンテナ(Containers)-他のコンポーネントを収容
例:wx.Panelダイナミックコンポーネント(Dynamic Widgets)-ユーザによって編集することができる例:wx.Button,wx.TextCtrl,wx.ListBoxスタティックコンポーネント(Static Widgets)-表示情報用で、ユーザによって編集することができない例:wx.StaticBitmap,wx.StaticText,wx.StaticLine
その他のコンポーネント:
フォームにhello worldを表示する
import wx
class Frame1(wx.Frame):
   def __init__(self,parent,title):
        wx.Frame.__init__(self, parent, title = title, pos = (100,200), size = (200,100))
        #         
        panel = wx.Panel(self)
        text1 = wx.TextCtrl(panel, value = "Hello, World!", size = (200,100))
        self.Show(True)
if __name__ == '__main__':
    #          ,      
    app = wx.App()
    #      
    frame = Frame1(None, "Example")
    app.MainLoop()


フォームで左ボタンを上げるとHello Worldを作成できます
import wx
class Frame1(wx.Frame):
    def __init__(self,parent):
        wx.Frame.__init__(self, parent=parent, title='Example', pos=(100, 200), size=(200, 100))
        self.panel = wx.Panel(self)
        #              OnClick  
        self.panel.Bind(wx.EVT_LEFT_UP, self.OnClick)

    def OnClick(self,event):
        posm=event.GetPosition()
        wx.StaticText(parent=self.panel,label='Hello World',pos=(posm.x,posm.y))
if __name__ == '__main__':
    app = wx.App()
    frame = Frame1(None)
    frame.Show()
    app.MainLoop()

python wxpython常用控件实例_第1张图片
コンポーネントをレイアウトするにはsizerを使用します
sizer自体はコンテナまたはフォームコンポーネントではなく、スクリーンレイアウトアルゴリズムsizerがネストを許可する
sizerを使用するには、(1)自動呼び出しサイズのコンテナを作成します.たとえばpanel(2)sizerを作成します(3)サブフォーム(フォームコンポーネント)を作成します(4)sizerのAdd()メソッドを使用して、各サブフォームをsizer(5)呼び出しコンテナに追加するSetSizerメソッド
buttonをクリックして1行hello worldを出力
import wx
class Frame1(wx.Frame):
    def __init__(self,parent):
        wx.Frame.__init__(self, parent=parent, title='Example')
        self.panel = wx.Panel(self)
        sizer=wx.BoxSizer(wx.VERTICAL)
        #      
        self.text1=wx.TextCtrl(self.panel,value='Hello World
',style=wx.TE_MULTILINE) #1 ,expand sizer.Add(self.text1,1,wx.ALIGN_TOP|wx.EXPAND) self.button=wx.Button(self.panel,label='click') self.Bind(wx.EVT_BUTTON,self.OnClick,self.button) sizer.Add(self.button) self.panel.SetSizerAndFit(sizer) self.panel.Layout() # button def OnClick(self,event): self.text1.AppendText('Hello World
') if __name__ == '__main__': app = wx.App() frame = Frame1(None) frame.Show() app.MainLoop()

python wxpython常用控件实例_第2张图片
ラジオボタンの内容をテキストボックスに出力
import wx
class Frame1(wx.Frame):
    def __init__(self,parent):
        wx.Frame.__init__(self, parent=parent, title='Example',size=(300,300))
        self.panel = wx.Panel(self)
        lblList = ['Value X', 'Value Y', 'Value Z']
        self.rbox = wx.RadioBox(self.panel, label='RadioBox', pos=(0, 20), choices=lblList,
                                majorDimension=1, style=wx.RA_SPECIFY_ROWS)
        self.rbox.Bind(wx.EVT_RADIOBOX, self.onRadioBox)
        self.button=wx.Button(self.panel,label='button',pos=(0,100))
        self.Bind(wx.EVT_BUTTON,self.onclick)
        self.text1=wx.TextCtrl(self.panel,style=wx.TE_MULTILINE,pos=(0,150),size=(300,50))


    def onclick(self,event):
        self.text1.AppendText(self.rbox.GetStringSelection())

    def onRadioBox(self, e):
        print(self.rbox.GetSelection())
if __name__ == '__main__':
    app = wx.App()
    frame = Frame1(None)
    frame.Show()
    app.MainLoop()

python wxpython常用控件实例_第3张图片
総合使用(株式注釈項目のメインフレームワーク):
import wx
import os
import re
class Frame1(wx.Frame):
    def __init__(self,parent):
        wx.Frame.__init__(self, parent=parent, title='      ',size=(380,250))
        self.panel = wx.Panel(self)
        self.text1 = wx.TextCtrl(self.panel, pos=(30, 20), size=(200, 25))
        self.btnO = wx.Button(self.panel, label="      ", pos=(255, 20), size=(90, 25))
        #     
        lblList = ['      ', '          ']
        self.rbox = wx.RadioBox(self.panel, label='    ', pos=(30, 60) ,choices=lblList,
                                majorDimension=1, style=wx.RA_SPECIFY_ROWS)
        self.btnS = wx.Button(self.panel, label="  ", pos=(130, 150), size=(70, 25))

        #     
        self.btnS.Bind(wx.EVT_BUTTON,self.OnClick)
        self.btnO.Bind(wx.EVT_BUTTON,self.OnOpenFile)

        #          
        self.icon = wx.Icon('123.ico', wx.BITMAP_TYPE_ICO)
        self.SetIcon(self.icon)

    def OnOpenFile(self,event):
        #         
        if self.rbox.GetSelection() == 1:
            #        
            self.dlgd=wx.DirDialog(self, u"     ", style=wx.DD_DEFAULT_STYLE)
            #           ,        text1  
            if self.dlgd.ShowModal() == wx.ID_OK:
                self.text1.AppendText(self.dlgd.GetPath())
        else:
            #        ,          txt  
            self.dlg = wx.FileDialog(self, message=u"    ", style=wx.FD_OPEN | wx.FD_CHANGE_DIR,
                                     wildcard="Text Files (*.txt)|*.txt")
            #           ,       text1  
            if self.dlg.ShowModal() == wx.ID_OK:
                self.text1.AppendText(self.dlg.GetPath())

    def OnClick(self,event):
        #   text1          
        if self.text1.GetValue() == "":
            wx.MessageBox("                 ", "    ", wx.OK | wx.YES_DEFAULT)
            return
        if self.rbox.GetSelection() == 0:
            #           txt  
            self.dlgx = wx.FileDialog(self, message=u"   ", style=wx.FD_OPEN | wx.FD_CHANGE_DIR,
                                      wildcard="Text Files (*.txt)|*.txt")
            if self.dlgx.ShowModal() == wx.ID_OK:
                self.RunSingalFile()
        else:
            self.dlgdx = wx.DirDialog(self, u"   ", style=wx.DD_DEFAULT_STYLE)
            if self.dlgdx.ShowModal() == wx.ID_OK:
                self.RunOneFolder()

    def RunSingalFile(self):
        self.msg1 = wx.MessageDialog(parent=None, message="    !(        )", caption="    ",
                                     style=wx.YES_NO | wx.ICON_INFORMATION)
        #     “ ”,startfile             (          )
        if self.msg1.ShowModal() == wx.ID_YES:
            os.startfile(self.dlgx.GetPath())
    def RunOneFolder(self):
        self.msg2 = wx.MessageDialog(parent=None, message="    !(         )", caption="    ",
                                     style=wx.YES_NO | wx.ICON_INFORMATION)
        if self.msg2.ShowModal() == wx.ID_YES:
            os.startfile(self.dlgdx.GetPath())


if __name__ == '__main__':
    app = wx.App()
    frame = Frame1(None)
    frame.Show()
    app.MainLoop()

python wxpython常用控件实例_第4张图片
python wxpython常用控件实例_第5张图片