Python gtk:如何检查组合框是否打开



我正在开发一台机器的图形用户界面。它在窗口中使用组合框,该组合框可以在主线程中、主循环外的任何时候重新绘制(使用gtk锁内的idle_add函数)。当按下机器上的某个按钮时,就会发生这种情况——一个真正的按钮,而不是一个小部件。如果在组合框打开时发生这种情况,我会收到Gtk警告:断言"WIDGET REALIZED FOR EVENT"失败,我的程序挂起。

我尝试添加代码:

    combo.set_active(-1)
    while gtk.events_pending():
          gtk.main_iteration()

但这并没有解决问题。

我一直在寻找combo.is_open()或combo.close()之类的函数,但它们似乎并不存在。与组合框相关的信号有"更改"、"激活"、"弹出"one_answers"弹出",但第一个信号仅在组合框中选择文本时发送,其他信号为键绑定信号。

是否有任何方法可以检查组合是否打开(已选择)?

使用popup-shown属性。

文档甚至告诉您连接到notify::popup-shown,这听起来正是您所需要的。

最新更新