Python 如何使用PyQt创建内部带有combobox的combobox

Python 如何使用PyQt创建内部带有combobox的combobox,python,pyqt,Python,Pyqt,例如,假设我有一本字典-dict={a:1,2,3,b:4,5,6,c:7,8,9} 如何使用dict值的组合框创建dict的组合框 听起来你想要一个嵌套菜单 在Qt中实现这一点的一种方法是将QToolButton与QMenu d = {'a': [1,2,3], 'b': [4,5,6], 'c': [7,8,9]} button = QToolButton() def callback_factory(k, v): return lambda: button.setText('

例如,假设我有一本字典-
dict={a:1,2,3,b:4,5,6,c:7,8,9}
如何使用dict值的组合框创建dict的组合框


听起来你想要一个嵌套菜单

在Qt中实现这一点的一种方法是将
QToolButton
QMenu

d = {'a': [1,2,3], 'b': [4,5,6], 'c': [7,8,9]}

button = QToolButton()

def callback_factory(k, v):
    return lambda: button.setText('{0}_{1}'.format(k, v))

menu = QMenu()
for k, vals in d.items():
    sub_menu = menu.addMenu(k)
    for v in vals:
        action = sub_menu.addAction(str(v))
        action.triggered.connect(callback_factory(k, v))

button.setMenu(menu)

听起来你想要一个嵌套菜单

在Qt中实现这一点的一种方法是将
QToolButton
QMenu

d = {'a': [1,2,3], 'b': [4,5,6], 'c': [7,8,9]}

button = QToolButton()

def callback_factory(k, v):
    return lambda: button.setText('{0}_{1}'.format(k, v))

menu = QMenu()
for k, vals in d.items():
    sub_menu = menu.addMenu(k)
    for v in vals:
        action = sub_menu.addAction(str(v))
        action.triggered.connect(callback_factory(k, v))

button.setMenu(menu)

创建两个组合框,首先使用字典键填充,然后在第一个组合框中选择具有适当值的项时重新填充第二个组合框。但是,我可以仅使用一个组合框对象进行操作吗?创建两个组合框,首先使用字典键填充,然后在第一个组合框中选择具有适当值的项时重新填充第二个组合框。但是,我可以只用一个组合框对象吗?伙计,你是最棒的。谢谢你,再帮我一次。如何在该菜单中获取(或查看)所选值?当他们单击时,您必须存储所选值。您可以在回调工厂返回的函数中执行,当他们单击itemMan时,将执行该函数,您是最好的。谢谢你,再帮我一次。如何在该菜单中获取(或查看)所选值?当他们单击时,您必须存储所选值。您可以在回调工厂返回的函数中执行该操作,回调工厂在单击该项时执行该函数