gpt4 book ai didi

python - 当在editingFinished事件中执行对话框时,QlineEdit的editingFinished被第二次发出

转载 作者:行者123 更新时间:2023-12-01 03:56:03 26 4
gpt4 key购买 nike

当我将 QLineEdit 的信号 editingFinished 连接到包含执行 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 信号 see documentation 。通过 editingFinishedEvent,焦点从行编辑更改为对话框,并且第二次发出信号。您可以使用 returnPressed 信号代替。仅当按下 return 或 Enter 键时才会发出。

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com