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

时间:2018-06-26 10:28:15

标签: python qt pyqt5

我正在使用带有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_())

我的平台:Mac OS X 10.12.6,Qt 5.10,Python 3.6.4

0 个答案:

没有答案