V. Armando Solé is right. With this solution the tooltips come quickly
in my computer. The corresponding PyQt code is :
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtCore, QtGui, uic
class MainWindow(QtGui.QWidget):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.setAttribute(QtCore.Qt.WA_GroupLeader)
self.menuI = QtGui.QPushButton("Menu")
self.menuI.setToolTip("Click here...")
self.menuI.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
mainLayout = QtGui.QHBoxLayout()
mainLayout.addWidget(self.menuI)
self.setLayout(mainLayout)
self.resize(49,40)
self.setWindowTitle("Qt menu")
self.clicAct0 = QtGui.QAction("0", self)
self.clicAct0.setToolTip("tooltip 0")
self.connect(self.clicAct0, QtCore.SIGNAL("triggered()"), self.clic)
self.clicAct1 = QtGui.QAction("1", self)
self.clicAct1.setToolTip("tooltip 1")
self.connect(self.clicAct1, QtCore.SIGNAL("triggered()"), self.clic)
self.clicAct2 = QtGui.QAction("2", self)
self.clicAct2.setToolTip("tooltip 2")
self.connect(self.clicAct2, QtCore.SIGNAL("triggered()"), self.clic)
menu0 = QtGui.QMenu(self)
menu0.addAction(self.clicAct0)
menu0.addAction(self.clicAct1)
menu0.addAction(self.clicAct2)
self.connect(menu0, QtCore.SIGNAL("hovered(QAction *)"),
self._actionHovered)
menu1 = QtGui.QMenu(self)
menu1.setTitle("submenu")
menu1.setToolTip("tooltip submenu")
menu1_0 = QtGui.QAction("subentry",self)
menu1_0.setToolTip("tooltip subentry")
self.connect(menu1_0, QtCore.SIGNAL("triggered()"), self.clic)
menu1.addAction(menu1_0)
menu0.addMenu(menu1)
self.menuI.setMenu(menu0)
def clic(self):
print "clic"
def _actionHovered(self, action):
tip = action.toolTip()
QtGui.QToolTip.showText(QtGui.QCursor.pos(), tip)
def main():
app = QtGui.QApplication(sys.argv)
locale = QtCore.QLocale.system().name()
appTranslator = QtCore.QTranslator()
app.setApplicationName(app.translate("main", "qtmenu"))
form = MainWindow()
form.show()
app.exec_()
if __name__ == "__main__":
main()
Andreas Pakulat wrote:
On 17.04.09 19:57:29, "V. Armando Solé" wrote:
Hi!
I encounter the same problem as the original poster. The tooltips
of QActions in a QMenu are not shown.
Is there a solution?
You can set the statustip on the actions, which makes the text show up
in the statusbar (at least in KDE apps, maybe pure Qt needs some
additional hookup there). But AFAIK Qt simply doesn't support Tooltips
on menus at this point, possibly something they could add to 4.6.
Andreas
I get satisfactory results (if one does not mind to show ALWAYS a
tooltip) with:
qt.QObject.connect(menu, qt.SIGNAL("hovered(QAction *)"),
self._actionHovered)
def _actionHovered(self, action):
tip = action.toolTip()
qt.QToolTip.showText(qt.QCursor.pos(), tip)
Surely there are cleaner workarounds ...
Armando
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt