代码之家  ›  专栏  ›  技术社区  ›  Lukas

带有qpushbutton子菜单的菜单:缺少箭头和奇怪的选择行为

  •  0
  • Lukas  · 技术社区  · 7 年前

    我使用qpushbutton上带有子菜单的qmenu作为一种层次组合框,用户可以从一个大列表中选择一些内容。

    由于某些原因,子菜单指示器(右箭头)未显示。它确实出现在我菜单栏的常规菜单上,只是安装在按钮上时没有。而且,从一个大的列表中通过键入第一个字母进行选择似乎不起作用。当我开始输入时,选择似乎会跳到看似随机的条目。它似乎只适用于少数条目的较小列表。

    我该怎么解决?

    Missing Arrow Example

    下面是一个重现问题的最小代码示例:

    import sys
    import pytz
    from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMenu, \
        QVBoxLayout
    
    app = QApplication(sys.argv)
    
    w = QWidget()
    w.show()
    
    btn = QPushButton('Button')
    w.setLayout(QVBoxLayout())
    w.layout().addWidget(btn)
    
    menu = QMenu()
    submenu = menu.addMenu('Time Zones')
    for zone in pytz.all_timezones_set:
        action = submenu.addAction(zone.split('/')[-1])
    btn.setMenu(menu)
    
    sys.exit(app.exec_())
    

    我的平台:MacOSX10.12.6、Qt5.10、Python3.6.4

    0 回复  |  直到 7 年前