【发布时间】:2015-05-07 07:22:04
【问题描述】:
我一直在阅读this PyQt5 documentation page 上的“按名称连接插槽”部分,它基本上描述了新的信号和插槽功能。这件作品引起了我的注意:
例如 QtGui.QSpinBox 类有以下信号:
void valueChanged(int i); void valueChanged(const QString &text);当微调框的值发生变化时,这两个信号都会发出。
所以我草拟了以下脚本来测试这种双重调用行为:
#!/usr/bin/env python3
from PyQt5 import QtCore, QtGui
from PyQt5.QtWidgets import QMainWindow, QSpinBox
class Test(QMainWindow):
def __init__(self):
super().__init__()
self.spb = QSpinBox()
self.spb.valueChanged.connect(self.onValueChanged)
self.setCentralWidget(self.spb)
def onValueChanged(self, x):
print("QSpinBox: value changed! " + str(x))
if __name__ == "__main__":
import sys
from PyQt5.QtWidgets import QApplication
app = QApplication(sys.argv)
t = Test()
t.show()
sys.exit(app.exec_())
在我看来,只有一个信号通过。我错过了什么?请注意,我是一个完整的PyQt noob。
【问题讨论】:
标签: python pyqt python-3.3 signals-slots pyqt5