当我将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/