【问题标题】:How to create combobox with combobox inside using PyQt如何使用 PyQt 在内部创建带有组合框的组合框
【发布时间】:2016-03-11 04:54:50
【问题描述】:

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

【问题讨论】:

  • 创建两个组合框,首先使用字典键填充,然后在第一个组合框中选择项目时使用适当的值重新填充第二个
  • 但是,我可以只用一个组合框对象吗?

标签: python pyqt


【解决方案1】:

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

在 Qt 中做到这一点的一种方法是使用 QToolButtonQMenu

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)

【讨论】:

  • 伙计,你是最棒的。非常感谢
  • 请再帮我一次。如何获取(或查看)该菜单中的选定值?
  • 您必须在他们单击时存储选择。您可以在他们单击项目时执行的回调工厂返回的函数中执行此操作
猜你喜欢
  • 2011-07-10
  • 2011-07-10
  • 1970-01-01
  • 2014-08-12
  • 2020-10-13
  • 1970-01-01
  • 2013-04-20
  • 2011-01-02
  • 1970-01-01
相关资源
最近更新 更多