come fare qmenu elemento verificabile pyqt4 python

Come posso fare il mio qmenu verificabili?

from PyQt4 import QtGui

app = QtGui.QApplication([])

menu = QtGui.QMenu()

menu.addAction('50%')
menu.addAction('100%')
menu.addAction('200%')
menu.addAction('400%')
menu.show()

app.exec_()
  • Si desidera rendere il QMenu verificabili o azioni? Per quanto ne so, QMenu non può essere verificabili.
  • sì voglio le azioni che devono essere verificabili.
InformationsquelleAutor unice | 2012-04-29

 

2 Replies
  1. 27

    come questo:

    from PyQt4 import QtGui
    
    app = QtGui.QApplication([])
    
    w = QtGui.QMainWindow()
    menu = QtGui.QMenu("menu", w)
    
    menu.addAction(QtGui.QAction('50%', menu, checkable=True))
    menu.addAction(QtGui.QAction('100%', menu, checkable=True))
    menu.addAction(QtGui.QAction('200%', menu, checkable=True))
    menu.addAction(QtGui.QAction('300%', menu, checkable=True))
    menu.addAction(QtGui.QAction('400%', menu, checkable=True))
    
    w.menuBar().addMenu(menu)
    w.show()
    app.exec_()

    o con pulsanti di opzione:

    from PyQt4 import QtGui
    
    app = QtGui.QApplication([])
    
    w = QtGui.QMainWindow()
    menu = QtGui.QMenu("menu", w)
    ag = QtGui.QActionGroup(w, exclusive=True)
    
    a = ag.addAction(QtGui.QAction('50%', w, checkable=True))
    menu.addAction(a)
    
    a = ag.addAction(QtGui.QAction('100%', w, checkable=True))
    menu.addAction(a)
    
    a = ag.addAction(QtGui.QAction('200%', w, checkable=True))
    menu.addAction(a)
    
    a = ag.addAction(QtGui.QAction('300%', w, checkable=True))
    menu.addAction(a)
    
    a = ag.addAction(QtGui.QAction('400%', w, checkable=True))
    menu.addAction(a)
    
    w.menuBar().addMenu(menu)
    w.show()
    app.exec_()
    • la ringrazio molto per tutte le risposte del campione. Che risolve il mio problema. 🙂
    • Vorrei aggiungere che si potrebbe utilizzare myaction = QtGui.QAction('50%', menu, checkable=True), quindi menu.addAction(myaction) e, infine, myaction.isChecked() per ottenere l’assegno di stato.
  2. 2

    Suggerisco l’aggiunta di poche righe, per il compact prima soluzione di mostrare l’effettivo utilizzo dei pulsanti:

    from PyQt4 import QtGui, QtCore
    
    def isChecked(): 
        """ Prints selected menu labels. """ 
        [print(action.text()) for action in menu.actions() if action.isChecked()]
    
    app = QtGui.QApplication([])
    w = QtGui.QMainWindow()
    menu = QtGui.QMenu("menu", w)
    
    menu.addAction(QtGui.QAction('50%', menu, checkable=True))
    menu.addAction(QtGui.QAction('100%', menu, checkable=True))
    menu.addAction(QtGui.QAction('200%', menu, checkable=True))
    menu.addAction(QtGui.QAction('400%', menu, checkable=True))
    
    menu.triggered.connect(isChecked)
    
    w.menuBar().addMenu(menu)
    w.show()
    app.exec_()

Lascia un commento