繁体   English   中英

关于python中的开关的一些问题

[英]Some questions about switches in python

这是我在StackOverflow的第一个问题,所以如果没有一些信息或者我错过了一些重要的信息,请耐心等待,但无论如何我会尽我所能:)

最近我开始用Python2.7编写代码,所以我不太擅长它。 在玩PyGtk,PyGObject,Glade等时,我发现了一些特别关于开关的东西(没有尝试过任何其他小部件,所以我不知道它是否发生在其他地方。很可能它没有,我希望... )

我用一个“窗口”和一个使用Glade的“开关”创建了一个非常基本的GUI

我的目标是在用户尝试激活它之后停用开关,如果之前提出了一些例外,例如:

  • 激活它 - > *找到错误 - > *取消激活它

我做了一些代码,过了一会儿,我注意到这段代码创建了一个类似循环的块,之后阻止了GUI的窗口:

builder = Gtk.Builder()
window1 = builder.get_object('window')
switchie = builder.get_object('switchie')

switchie.set_active(False)

def Hi(switch, active):
    print switchie.get_active()
    switchie.set_active(not switchie.get_active())


switchie.connect("""notify::active""", Hi)

window1.set_position(Gtk.WindowPosition.CENTER)
window1.connect("delete-event", Gtk.main_quit)
window1.show_all()

如果我是对的,只要“switchie”被点击,“switchie.connect”就会将“switchie”对象与“Hi”func链接起来。

但如果我执行此操作并尝试打开开关,GUI将挂起。 我试图通过脚本和命令行执行此操作并添加“打印开关状态”,从而产生无限循环(True&False)

我尝试了许多其他功能,但他们都无法解决这个问题。 事实上,这是我所有其他功能的“本质”。

为什么会这样?

循环在哪里?

我错了吗?

感谢帮助!

(如果你需要查看其余的错误功能,请问他们,但我不认为他们会帮助......)

你想像这样连接开关:

switchie.connect("""activate""", Hi)

这只会在每次点击时被调用一次 你所做的是在它发生变化之后连接到信号,所以它不断变化,永远不会追赶。 你也想改变

def Hi(switch, active):

def Hi(switch, active = None):

用于键盘支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM