[英]In PyQt, how can signals and slots be used to connect a dropdownlist to a function?
在PyQt中,有一个信号和槽的概念将对象连接到彼此的函数,但我似乎无法找到它们引用与其他对象无关的函数。 例如,我想要一个下拉列表来运行算法A或算法B.
PyQt如何实现此功能?
你想要更改下拉列表的效果来调用函数吗?
将下拉列表的相应信号连接到您的函数。
例如,使用QComboBox currentIndexChanged()信号。 将其连接到“包装器”函数,该函数决定(基于索引)要调用的函数。
编辑:包装器可以非常简单,如下所示:
functions = {0: reference_to_function_1, 1: reference_to_function_2}
def wrapper(index):
functions[index]()
Edit2:如果你想要一些替代插槽的替代方法:
http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/pyqt4ref.html#connecting-signals-and-slots
当他们谈论Py或Qt信号时,以及当他们谈论Python函数或方法时,请注意。 例如,这些是将Qt信号连接到Python函数和Python方法的语法:
QtCore.QObject.connect(a, QtCore.SIGNAL("QtSig()"), pyFunction) #function-style
QtCore.QObject.connect(a, QtCore.SIGNAL("QtSig()"), pyClass.pyMethod) #method-style
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.