0
点赞
收藏
分享

微信扫一扫

pyqt Line edit仅在编辑或失去焦点后触发槽函数

佳简诚锄 2022-03-24 阅读 92
qtpython

信号用editingFinished()

self.lineEdit.editingFinished.connect(self.edit_finish)

这个函数会在被编辑后或者失去焦点(如选中其它控件或按下回车之类)后发出信号,这就导致一个问题即如果按下回车就会触发槽函数,失焦后会再次触发。而且即使控件中的文本未发生改变也会触发槽函数。如果想避免这种情况可以尝试使用isModified()方法。举例来说,我们希望仅仅在输入框中的文本发生改变,且编辑完成(键入回车或者失去焦点)时打印输入框中的文本,那么:

def edit_finish(self):
    if self.lineEdit.isModified():
        print(self.lineEdit.text())
        print("Editing Finished")
    self.lineEdit.setModified(False)

本文仅做个人笔记所用,如有错误欢迎指正。

举报

相关推荐

0 条评论