pygtk组合框焦点信号处理

时间:2012-05-11 11:06:50

标签: python combobox focus pygtk signals

我一直试图找到一种方法来处理聚焦pygtk组合框。目标是在聚焦时改变组合框的颜色,然后在聚焦离开组合框时将其改回。我尝试过使用“focus_out_event”,但这似乎不适用于组合框。我已经广泛搜索了这个问题的答案,看起来这可能是一个gtk + bug?

到目前为止我提出的解决方案......

我有4个单独的组合框cb0 - cb3。我已将它们连接到相同的方法......

self.cb0.connect("focus", self.focus)

在方法中我改变了状态和颜色......

def focus(self, widget, direction):
    if widget.get_state() == gtk.STATE_NORMAL:
        widget.set_state(gtk.STATE_SELECTED)
        widget.modify_base(gtk.STATE_SELECTED, gtk.gdk.Color("#99CCFF"))
    else:
        widget.set_state(gtk.STATE_NORMAL)
        widget.modify_base(gtk.STATE_NORMAL, gtk.gdk.Color("#FFFFFF")) 

使用键盘进行标签时,这可以提供所需的效果。但如果用鼠标点击组合框我会得到不良结果。现在我正在寻找一种跟踪鼠标点击的方法。

我似乎无法找到一个信号或方法来检查何时单击特定的组合框。使用“grab_notify”信号将触发所有4个组合框的信号(从而立即更改所有框的基色。)

这是一个令人沮丧的问题,花费了我太多的时间。似乎应该有一个简单的解决方案。

0 个答案:

没有答案