如何将QSignalMapper用于多个QLineEdits?

时间:2014-08-04 20:01:13

标签: python python-2.7 qt4 pyqt

我在特定的应用程序窗口中有大约20个QLineEdits。

我希望点击它后立即清除QLineEdit的内容。

对于几个QLIneEdits,我使用下面的lambda函数。

    self.StudentName.mousePressEvent = lambda event : self.StudentName.clear()

我不知道如何为此目的实现QSignalMapper,因为我有大约20个QLineEdits。 有人可以请简要解释一下QSignalMapper。

我是否必须创建所有QLineEdit SIGNAL的数组,然后将其映射到QSignalMapper SLOT。 请建议。

1 个答案:

答案 0 :(得分:1)

据我所知,QSignalMapper用于反向问题,或收集和整理来自多个输入的信号。

将多个事件设置为简单行为的最简单方法是在纯python中执行:

 for edit in LineEdits:
     edit.mousePressEvent = lambda event : edit.clear()

其中LineEdits是您的小部件列表。