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を表示する
フォームで左ボタンを上げるとHello Worldを作成できます
コンポーネントをレイアウトするにはsizerを使用します
sizer自体はコンテナまたはフォームコンポーネントではなく、スクリーンレイアウトアルゴリズムsizerがネストを許可する
sizerを使用するには、(1)自動呼び出しサイズのコンテナを作成します.たとえばpanel(2)sizerを作成します(3)サブフォーム(フォームコンポーネント)を作成します(4)sizerのAdd()メソッドを使用して、各サブフォームをsizer(5)呼び出しコンテナに追加するSetSizerメソッド
buttonをクリックして1行hello worldを出力
ラジオボタンの内容をテキストボックスに出力
総合使用(株式注釈項目のメインフレームワーク):
コンポーネントコンテナ(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()
コンポーネントをレイアウトするには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()
ラジオボタンの内容をテキストボックスに出力
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()
総合使用(株式注釈項目のメインフレームワーク):
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()