我有两行使用旧的SIGNAL和SLOT样式..
combobox.emit(SIGNAL("activated(int)"), combobox.currentIndex())
combobox.emit(SIGNAL("activated(const QString &)"), combobox.currentText())
我想知道新款式会是什么样子。我是python的新手,我对信号和插槽没有多少经验。是否有一个非常好的资源可以覆盖这个?文档并没有真正帮助我理解发生了什么。
答案 0 :(得分:1)
解决方案是指出正在发出的信号的参数类型:
combo.activated[type].connect(someSlot)
示例:
class Widget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.setLayout(QVBoxLayout())
combo = QComboBox(self)
self.layout().addWidget(combo)
combo.addItems(["item1", "item2", "item3"])
combo.activated[int].connect(self.onActivatedIndex)
combo.activated[str].connect(self.onActivatedText)
@pyqtSlot(int)
def onActivatedIndex(self, index):
print(index)
@pyqtSlot(str)
def onActivatedText(self, text):
print(text)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())