class newXMLDialog(wx.Dialog):
def __init__(self, parent, id):
title = 'test dialog'
wx.Dialog.__init__(self, parent, id, title, size=(200, 180))
panel = wx.Panel(self, -1)
vbox = wx.BoxSizer(wx.VERTICAL)
noteTxt=wx.StaticText(self,-1,u"",size=(180, -1))
systemTxt = wx.StaticText(self, -1, u"System:",
size=(50, -1),
style = wx.ALIGN_RIGHT)
systemList = ['win32', 'darwin', 'linux', 'linux2']
self.systemCtrl = wx.ComboBox(self, -1, 'win32',
choices = systemList,
size = (100, -1),
style = wx.CB_DROPDOWN
)
nameTxt = wx.StaticText(self, -1, u"Name:",
size=(50, -1),
style = wx.ALIGN_RIGHT)
self.nameCtrl = wx.TextCtrl(self, -1, 'newName',
size = (100, -1))
sizer = wx.FlexGridSizer(cols=2, hgap=4, vgap=4)
sizer.AddMany([ systemTxt, self.systemCtrl,
nameTxt, self.nameCtrl,
])
# Button
hbox = self.CreateButtonSizer(wx.OK|wx.CANCEL)
vbox.Add(panel)
vbox.Add(noteTxt, 1, wx.ALIGN_CENTER)
vbox.Add(sizer, 1, wx.ALIGN_CENTER)
vbox.Add(hbox, 1, wx.ALIGN_CENTER | wx.TOP, 10)
self.SetSizer(vbox)
def GetSystem(self):
return self.systemCtrl.GetValue()
def GetName(self):
return self.nameCtrl.GetValue()
呼び出し部分は普通のダイアログと同じです。
CreateButtonSizerを使うとwx.ID_OKとか返り値を得ることができるので楽です。
他の値もこんな感じでGetできます。
if dlg.ShowModal() == wx.ID_OK:
print dlg.GetSystem()
print dlg.GetName()
dlg.Destroy()
最終更新:2008年04月26日 17:34