posx = 50
for name in sheets:
wx.CheckBox(self, -1 ,name, (15, posx))
posx = posx + 20
执行此操作时会出现复选框,但它们不起作用,这意味着我无法检查任何方框,是否正确添加复选框或按钮的方式?
我现在已经编辑了我的代码并将其添加到面板中,现在复选框甚至不显示
pnl = wx.Panel(self)
posx = 50
for name in sheets:
cb = wx.CheckBox(pnl, label=name, pos=(20, posx))
cb.SetValue(True)
cb.Bind(wx.EVT_CHECKBOX, self.doSomething)
posx = posx + 20
def doSomething(Self,e):
sender = e.GetEventObject()
isChecked = sender.GetValue()
if isChecked:
#do something here
else:
#do something else here
答案 0 :(得分:3)
这很有效。
import wx
class MyApp(wx.App):
def OnInit(self):
frame = InsertFrame(parent=None, id=-1)
frame.Show()
return True
class InsertFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, 'Test Frame', size = (300,100))
panel = wx.Panel(self)
pos_y = 0
for i in range(50):
pos_y += 20
cb = wx.CheckBox(panel, label="sample checkbox", pos=(20, pos_y))
if __name__ == "__main__":
app = MyApp()
app.MainLoop()
这只是使用复选框设置小部件。
输出:
答案 1 :(得分:1)
复选框类 - > http://wxpython.org/docs/api/wx.CheckBox-class.html
按钮类 - > http://wxpython.org/docs/api/wx.Button-class.html
复选框的示例代码:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import wx
class Example(wx.Frame):
def __init__(self, *args, **kw):
super(Example, self).__init__(*args, **kw)
self.InitUI()
def InitUI(self):
pnl = wx.Panel(self)
cb = wx.CheckBox(pnl, label='Show title', pos=(20, 20))
cb.SetValue(True)
cb.Bind(wx.EVT_CHECKBOX, self.ShowOrHideTitle)
self.SetSize((250, 170))
self.SetTitle('wx.CheckBox')
self.Centre()
self.Show(True)
def ShowOrHideTitle(self, e):
sender = e.GetEventObject()
isChecked = sender.GetValue()
if isChecked:
self.SetTitle('wx.CheckBox')
else:
self.SetTitle('')
def main():
ex = wx.App()
Example(None)
ex.MainLoop()
if __name__ == '__main__':
main()
按钮的示例代码:
import wx
class MyFrame(wx.Frame):
"""make a frame, inherits wx.Frame"""
def __init__(self):
# create a frame, no parent, default to wxID_ANY
wx.Frame.__init__(self, None, wx.ID_ANY, 'wxButton',
pos=(300, 150), size=(320, 250))
self.SetBackgroundColour("green")
self.button1 = wx.Button(self, id=-1, label='Button1',
pos=(8, 8), size=(175, 28))
self.button1.Bind(wx.EVT_BUTTON, self.button1Click)
# optional tooltip
self.button1.SetToolTip(wx.ToolTip("click to hide"))
# show the frame
self.Show(True)
def button1Click(self,event):
self.button1.Hide()
self.SetTitle("Button1 clicked")
self.button2.Show()
application = wx.PySimpleApp()
# call class MyFrame
window = MyFrame()
# start the event loop
application.MainLoop()
所有其他wxpython小部件的好教程:( wx.Button wx.ToggleButton,wx.StaticLine,wx.StaticText,wx.StaticBox wx.ComboBox,wx.CheckBox,wx.StatusBar,wx.RadioButton,wx.Gauge,wx.Slider和wx.SpinCtrl) - > http://zetcode.com/wxpython/widgets/