wxPython复选框真或假。

3
假设我在wxPython中有一个复选框:
cb1 = wx.CheckBox(panelWX, label='TIME', pos=(20, 20))
cb1.SetValue(False)

有没有一种简单的方法可以检查它是否更改为true?像这样吗?

if cb1.SetValue == True:

从那一点开始,附加一些与它为真的行动有关的内容?像这样:

selectionSEM1.append('Time')

我不关心它是否再次变为假,只要它在任何时候已经变为真。 - LukeG
2个回答

5
你只需要使用GetValue()方法。看看这个来自wxpython wiki的例子:
#!/usr/bin/python

# checkbox.py

import wx

class MyCheckBox(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, size=(250, 170))

        panel = wx.Panel(self, -1)
        self.cb = wx.CheckBox(panel, -1, 'Show Title', (10, 10))
        self.cb.SetValue(True)

        wx.EVT_CHECKBOX(self, self.cb.GetId(), self.ShowTitle)

        self.Show()
        self.Centre()

    def ShowTitle(self, event):
        if self.cb.GetValue():#here you check if it is true or not
            self.SetTitle('checkbox.py')
        else: self.SetTitle('')


app = wx.App(0)
MyCheckBox(None, -1, 'checkbox.py')
app.MainLoop()

1
你想要使用Events
def do_something(event):
    box = event.GetEventObject()
    setting = box.GetValue()
    if setting:
            selectionSEM1.append('Time')
    event.Skip()

cb1.Bind(wx.EVT_CHECKBOX, do_something, cb1)

但是我该如何让一个事件将内容添加到主方法中已存在的列表中呢?据我所知,我无法在那里添加额外的参数。 - LukeG
@LukeG,你对面向对象编程(OOP)熟悉吗?一个对象的任何属性(无论它们是否在主函数中声明)都应该可以被该对象的方法访问。如果问题没有提供更多的信息,那么提供更具体的帮助就比较困难了。 - dilbert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接