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

2024-10-05 12:18:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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


Tags: importappzone列表sys菜单menupytz

热门问题