gpt4 book ai didi

python - 为什么 QToolTips 不会出现在 QMenu 中的 QActions 上

转载 作者:太空狗 更新时间:2023-10-29 20:40:47 26 4
gpt4 key购买 nike

我正在使用 PySide 编写的 GUI 应用程序。我在QPushButton 上设置了一个QMenu,通过QMenu.addAction 添加了几个QActions。为了向用户进一步解释这些操作,我使用 QAction.setToolTip 添加了 QToolTip

当我现在运行 GUI 时,我的 QToolTip 不会显示。下面发布的示例重现了同样的问题,有什么想法吗?

提前致谢

import sys
from PySide import QtGui

class Example(QtGui.QPushButton):

def __init__(self, parent = None):
super(Example, self).__init__(parent)

self.setText('TestMenu')
self.setToolTip('This is a Test Button')

menu = QtGui.QMenu(self)
action_1 = menu.addAction('Action1')
action_1.setToolTip('This is action 1')
action_2 = menu.addAction('Action2')
action_2.setToolTip('This is action 2')
action_3 = menu.addAction('Action3')
action_3.setToolTip('This is action 3')
action_4 = menu.addAction('Action4')
action_4.setToolTip('This is action 4')

self.setMenu(menu)
self.show()

def main():
app = QtGui.QApplication(sys.argv)
ex = Example()

app.exec_()

if __name__ == '__main__':
main()

最佳答案

在 Qt-5.1 或更高版本中,您可以简单地使用 QMenu.setToolTipsVisible , 并且菜单项将按预期显示其工具提示(参见 QTBUG-13663 ):

    menu.setToolTipsVisible(True)

但是,对于Qt-4.*和Qt-5.0,情况就不同了。如果一个 Action 被添加到工具栏,它的工具提示显示;但如果将相同的操作添加到 QMenu,则不会,并且没有内置 API 可以更改它。有几种方法可以解决这个问题。一种是使用 status tips相反,它将在状态栏中显示菜单项信息。另一种是使用 QMenu.hovered 自己实现菜单项工具提示功能。信号和 QToolTip.showText :

        self.menu = QtGui.QMenu(self)
...
self.menu.hovered.connect(self.handleMenuHovered)

def handleMenuHovered(self, action):
QtGui.QToolTip.showText(
QtGui.QCursor.pos(), action.toolTip(),
self.menu, self.menu.actionGeometry(action))

关于python - 为什么 QToolTips 不会出现在 QMenu 中的 QActions 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21725119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com