我正在尝试附加到复选框按钮的动作侦听器。我的目标是每当选中/取消选中复选框时切换变量值(0或1)。
我来自C背景,对python来说相当新。我也一直在阅读全局变量,但我似乎无法掌握它。
我先在C中做一个例子:
//#includes
int test; //i could say public int test but it is public by default
int foo()
{
test = 1;
return test;
}
void main()
{
test = 0;
print (foo);
}
下面是一些示例python代码。
class someRandomClass:
def on_checkbutton1_toggled(self, widget, data=None):
if test == 0:
test = 1
if test == 1:
test = 0
def __init__(self):
global test
test = 0
if __name__ == "__main__":
main = someRandomClass()
gtk.main()
执行此python代码并单击复选框会抛出一个 UnboundLocalError:在赋值之前引用的局部变量'test'
我尝试在函数之外创建全局变量但仍在类中 - 与示例C代码的方法相同。
答案 0 :(得分:0)
发布后我发现自己的答案很快:
def on_checkbutton1_toggled(self, widget, data=None):
global test
chkbtn1 = self.builder.get_object("checkbutton1")
print "BUTTON CHECKED -",chkbtn1.get_active()
if chkbtn1.get_active() == 0:
test = 0
if chkbtn1.get_active() == 1:
test = 1
print test
def __init__(self):
global test
有了这个,我能够在其他听众中打印出测试的价值。如果其他人想要更多代码,请随时告诉我。