我想将QComboBox indeces与特定字符串连接(即当我选择“A”时,我希望它打印“A已被选中”,当我选择“B”时,则“B已被选中” )。
我是PySide的新手并且正在学习,所以我确信存在一个简单的解决方案。感谢帮助。
from PySide import QtGui
class Widget(QtGui.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
v_global_layout = QtGui.QVBoxLayout()
method_selection = QtGui.QComboBox()
method_selection.addItem("A")
method_selection.addItem("B")
v_global_layout.addWidget(method_selection)
self.setLayout(v_global_layout)
def do_somethinh():
print("A has been selected!!!")
method_selection.activated.connect(do_somethinh)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
main_window = Widget()
main_window.setGeometry(100, 100, 640, 480)
main_window.show()
sys.exit(app.exec_())
答案 0 :(得分:1)
QComboBox.activated信号有两个重载:一个发送所选项目的索引,另一个发送文本。默认重载发送索引。要选择其他重载,您需要稍微不同的语法:
def do_somethinh(text):
print(text, "has been selected!!!")
method_selection.activated[str].connect(do_somethinh)
因此信号对象具有__getitem__
支持,这允许您通过将参数类型作为键传递来选择信号的特定重载(如果有多个参数,则可以传递类型的元组)。 / p>