Menü

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

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?
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
ichisich
User
Beiträge: 134
Registriert: Freitag 1. Januar 2010, 11:52

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 ....
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

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!
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

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_()
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Antworten