Question

Hi I have designed a basic GUI in QT and created a .py file from it.

When the window starts up I want to add another menu item. I have tried a few pieces of code I found on google but nothing seems to work. The code will need to go in the method addAdminMenu()

from PyQt4 import QtGui

import sys
from supplypy.core.windows.main_window import Ui_MainWindow
class SRM(QtGui.QWidget):
    def __init__(self):
        self.app = QtGui.QApplication(sys.argv)
        self.MainWindow = QtGui.QMainWindow()
        self.ui = Ui_MainWindow()    
        self.ui.setupUi(self.MainWindow)
        self.MainWindow.show()
        sys.exit(self.app.exec_())

    def addAdminMenu(self):
        pass
        #####Add code here to create a Admin menu####

if __name__ == '__main__':
        srm = SRM()
Was it helpful?

Solution

It should be as simple as accessing the menuBar() of the QMainWindow and adding an item, for example: (I removed the Ui_MainWindow lines just because I don't know what it's for -- a Windows requirement?)

from PyQt4 import QtGui

import sys
class SRM(QtGui.QWidget):
    def __init__(self):
        self.app = QtGui.QApplication(sys.argv)
        self.MainWindow = QtGui.QMainWindow()
        self.menubar = self.MainWindow.menuBar()
        self.MainWindow.show()
        self.addAdminMenu()
        sys.exit(self.app.exec_())

    def addAdminMenu(self):
        self.menubar.addMenu('&Admin');

if __name__ == '__main__':
        srm = SRM()
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top