我正在使用带有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_())
我的平台:Mac OS X 10.12.6,Qt 5.10,Python 3.6.4