为什么 QLineEdit 小部件在激活其他小部件时会生成 "editingFinished" 信号?

Why does a QLineEdit widget generate an "editingFinished" signal when other widgets are activated?

我试图理解为什么在选择其他小部件时会生成 QLineEdit "editingFinished" 信号。在下面的示例中,选择组合框时调用 "on_lineedit" 方法。为什么?

import sys
from PyQt5 import QtWidgets

class MyApp(QtWidgets.QDialog):
    def __init__(self, *args):
        super().__init__(*args)
        # create combobox:
        combobox = QtWidgets.QComboBox(self)
        combobox.addItems(['Item 1', 'Item 2'])
        # create line edit
        lineedit = QtWidgets.QLineEdit(self)
        lineedit.editingFinished.connect(self.on_lineedit)
        # layout:
        vbox = QtWidgets.QVBoxLayout()
        vbox.addWidget( combobox )
        vbox.addWidget( lineedit )
        self.setLayout(vbox)

    def on_lineedit(self):
        print('on_lineedit')

app    = QtWidgets.QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())

我知道这个问题可以通过连接 "textChanged" 信号而不是 "editingFinished" 信号来避免,如下所示:

lineedit.textChanged.connect(self.on_lineedit)

我在其他地方也看到过类似的问题(下面的链接),但我仍然不明白为什么在选择组合框时会生成 "editingFinished" 信号。

Qt qspinbox editingFinished signal on value changed

Suppress QLineEdit editingFinished signal when certain button is clicked

来自http://doc.qt.io/archives/qt-4.8/qlineedit.html#editingFinished

This signal is emitted when the Return or Enter key is pressed or the line edit loses focus.

发射信号是因为它被设计成。您点击的另一个小部件在这里并不真正相关,相关的是行编辑失去焦点并且导致信号被发射。单击另一个小部件只是您的行编辑可能失去焦点的多种方式之一。