为什么 QToolTips 不会出现在 QMenu 内的 QActions 上

2024-01-08

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

当我现在运行 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 https://doc.qt.io/qt-5/qmenu.html#toolTipsVisible-prop,菜单项将按预期显示其工具提示(请参阅QTBUG-13663 https://bugreports.qt.io/browse/QTBUG-13663):

    menu.setToolTipsVisible(True)

然而,对于Qt-4.*和Qt-5.0,情况有所不同。如果将操作添加到工具栏,则其工具提示will被展示;但如果将相同的操作添加到QMenu,它不会,并且没有内置 API 可以改变这一点。有几种方法可以解决这个问题。一是使用状态提示 http://qt-project.org/doc/qt-4.8/qaction.html#statusTip-prop相反,它将在状态栏中显示菜单项信息。另一种是使用以下方法自己实现菜单项工具提示功能QMenu.悬停 http://qt-project.org/doc/qt-4.8/qaction.html#statusTip-prop信号和QToolTip.showText http://qt-project.org/doc/qt-4.8/qtooltip.html#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))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 QToolTips 不会出现在 QMenu 内的 QActions 上 的相关文章

随机推荐