Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Argumenten bij slots in pyqt4  (gelezen 1145 keer)

Offline commandoline

  • LoCo-contact
    • marten-de-vries
    • Marten-de-Vries.nl
  • Steunpunt: Nee
Argumenten bij slots in pyqt4
« Gepost op: 2009/05/20, 17:58:21 »
Hoi allemaal,

Ik heb devolgende (versimpelde) code:

from PyQt4 import QtCore, QtGui
import sys

class MainWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)

        menubar = self.menuBar()
        firstmenu = menubar.addMenu("&FirstMenu")
        firstmenulist = []
        testdata = ["Data_die", "bij_elke", "herstart", "veranderd"]

        for item in testdata:
            menuitem = QtGui.QAction(item, self)
            firstmenulist.append(menuitem)

        for menuitem in firstmenulist:
            firstmenu.addAction(menuitem)
            QtCore.QObject.connect(menuitem, QtCore.SIGNAL("triggered()"), self, QtCore.SLOT("self.printMenuItemWatIsAangeklikt(menuitem)"))

    def printMenuItemWatIsAangeklikt(self, item):
        print item
       
if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    mainwindow = MainWindow()
    mainwindow.show()
    sys.exit(app.exec_())
De data in het menu verandert elke herstart. Nu wil ik weten waarop de gebruiker heeft geklikt, ik wil het opschrift doorsturen naar de functie 'printMenuItemWatIsAangeklikt'. (Ik weet dat ik als dit zou werken de QAction zou doorsturen, maar om de hier weergeven code niet te lang te maken haal ik het opschrift er niet uit.) Weet iemand hoe ik zoiets kan doen, ik zoek namelijk al een tijdje maar kan niets werkends vinden.

Marten