如何在PySide中实现wx.EVT_KILL_FOCUS和wx.lib.intctrl.IntCtrl?

时间:2014-08-19 21:28:20

标签: python user-interface wxpython pyside

我正在研究一个用wxpython编写的运行良好的程序。我需要使用PySide重写它。所以我需要在PySide中找到替换命令。

self.tc.Bind(wx.EVT_SET_FOCUS, self.HelpMessages(field))

这是我遇到的问题之一。我知道这意味着一个事件,当一些东西通过鼠标点击获得焦点时,它会触发self.HelpMessages。但PySide中的哪个命令可以获得类似的效果?同样,是否有任何命令可以替换丢失的焦点,如下所示?

self.tc.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus) 

我必须处理的另一个问题是这个问题。

self.tc = wx.lib.intctrl.IntCtrl(self.parent, -1, field[con.ConfigFields.VALUE], pos=(x+220, y-3), size=(200, -1), allow_none=True)

基于文档wx.lib.inctrl.IntCtrl提供了一个控件,它接受并返回整数作为值,并提供边界支持和可选的值限制。

PySide也有类似的功能吗?

我知道这两个问题是零碎的。如果你能给我一些例子,那真是太好了。

1 个答案:

答案 0 :(得分:0)

可能最简单的方法是在PyQt中搜索焦点事件。 PySide只是PyQt的一个端口,所以你只需稍微改变一下导入就可以使PyQt中的大多数例子都适用于PySide。无论如何,我找到了以下链接:

我相信您需要做的就是调用QMainWindow的setFocusPolicy并连接以下信号:

QObject.connect(app, SIGNAL("focusChanged(QWidget *, QWidget *)"), changedFocusSlot)

然后你应该能够检测焦点事件。