Seite 1 von 1

Menü

Verfasst: Donnerstag 31. Dezember 2009, 23:00
von INFACT
Hi,

Geht das in qt so ein tooltip auf dem man optionen wählen kann. So was ähnliches wie das menü "Datei", "Bearbeiten", dass sich dann öffnet ... Bloß nicht in einem menü. Das soll sich dann öffnen, wenn man auf einen button drückt.

Wie bei Firefox, der Pfeil nach unten, bei dem Vor/Zurück buttons. Da ist auch so ein Menü.

Geht das irgentwie in qt?

Verfasst: Freitag 1. Januar 2010, 11:55
von ichisich
Hi,
im Prinzip ist das nichts anders wie ein Kontextmenü, ausgelößt durch einen Button und eben nicht durch die rechte Maustaste.

Als schau mal Richtung QMenu oder eben nach Kontextmenüs.

A Guts Neues ....

Verfasst: Freitag 1. Januar 2010, 17:31
von INFACT
Gut, das QMenü habe ich jetzt.
Leider kann ich das event nicht abfangen, wenn eine Action geclickt wird.
Bei google gibt es viele Ergebnisse ( vom gleichen Autor ) aber da steht keine Lösung bei.
Das triggered event funktioniert nicht:

Code: Alles auswählen

import sys
from PyQt4 import QtGui
from PyQt4 import QtCore


class Example(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Menu')

        self.menu = QtGui.QMenu()
        self.menu.addAction("test")
        self.menu.addMenu("tesr")
        self.connect(self.menu, QtCore.SIGNAL("triggered ( QAction * action )"),
                     self.do)
        self.menu.exec_(QtGui.QCursor.pos());

    def do(self, action):
        print action
        self.menu
        
app = QtGui.QApplication(sys.argv)
tooltip = Example()
tooltip.show()
app.exec_()

Hier die doku: http://qt.nokia.com/doc/4.0/qmenu.html#triggered

Edit: Auch so!

Verfasst: Freitag 1. Januar 2010, 17:54
von INFACT
Tada:

Code: Alles auswählen

class Menu(QtGui.QMenu):
    def __init__(self):
        QtGui.QMenu.__init__(self)

        self.action = QtGui.QAction("Im a test", None)
        self.addAction(self.action)

        self.connect(self.action, QtCore.SIGNAL("triggered()"), self.do_test)

        self.exec_(QtGui.QCursor.pos())
        
    def do_test(self):
        print "test"
        
app = QtGui.QApplication(sys.argv)
tooltip = Menu()
app.exec_()