我使用qpushbutton上带有子菜单的qmenu作为一种层次组合框,用户可以从一个大列表中选择一些内容。
由于某些原因,子菜单指示器(右箭头)未显示。它确实出现在我菜单栏的常规菜单上,只是安装在按钮上时没有。而且,从一个大的列表中通过键入第一个字母进行选择似乎不起作用。当我开始输入时,选择似乎会跳到看似随机的条目。它似乎只适用于少数条目的较小列表。
我该怎么解决?
下面是一个重现问题的最小代码示例:
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