当我将editingFinished的信号QLineEdit连接到包含QDialog执行的功能时,第二次发出editingFinished的信号QLineEdit。该介绍看起来不太清楚...下一个示例应帮助您理解:

from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys

class Foo(QLineEdit):
    def __init__(self):
        super().__init__()
        self.editingFinished.connect(self.editingFinishedEvent)

    def editingFinishedEvent(self):
        dialog = QDialog()
        dialog.exec_()
        print('editing finished event occured !')

app = QApplication(sys.argv)

win = Foo()
win.show()

sys.exit(app.exec_())


该脚本创建并显示一个QLineEdit。当我编辑该QLineEdit的值并按Enter键时,应立即执行方法editingFinishedEvent。如果我删除行dialog.exec_()就是这种情况。但是,如果我不这样做,editingFinishedEvent将执行两次,而不是执行一次。

最佳答案

当按下返回键或回车键或行编辑失去焦点时,会发出editingFinished信号。通过editingFinishedEvent,焦点从行编辑更改为对话框,并且第二次发出信号。您可以改用returnPressed信号。仅在按下回车或回车键时发射。

关于python - 当在editFinished事件中执行对话框时,第二次发出QlineEdit的editedFinished,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37458898/

10-12 00:24
查看更多