繁体   English   中英

在PyQt中,如何使用信号和插槽将下拉列表连接到函数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM