2013-12-07 5 views
0

Я создал класс, который создает графический интерфейс. Я хотел бы добавить к нему меню, но я действительно не знаю, как добавить его в окно, если я работаю с классом. Я не могу сделать панель меню appaer.Создать графический интерфейс в классе

class Window(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     super(Window, self).__init__(parent) 
     Main = QtGui.QMainWindow() 


     self.tab1 = QtGui.QWidget() 
     self.tab2 = QtGui.QWidget() 


     self.figure = plt.figure() 
     self.canvas = FigureCanvas(self.figure) 


     self.tempLabel=QtGui.QLabel("NC",self) 
     self.tempLabel.move(350,20) 
     self.tempLabel.setStyleSheet('color: black; font-size: 12pt;font: bold') 

     #menu bar 
     self.menu=QtGui.QMenu("Port", self) 
     self.menu.addAction('&ttyUSB0',) 
     self.menu.addAction('&ttyUSB1',) 
     self.menu.addAction('&ttyUSB2',) 



     self.layout = QtGui.QVBoxLayout() 
     self.layout.addWidget(self.canvas) 
     self.layout.addWidget(self.tempLabel) 

     self.tab1.setLayout(self.layout) 

     self.tabs = QtGui.QTabWidget() 
     self.tabs.addTab(self.tab1, "Database") 
     self.tabs.addTab(self.tab2, "Current") 

     self.tabs.show() 

ответ

1

Строка меню, как правило, из главного окна, используя функцию menuBar.

Я редактировал свой пример кода, чтобы показать, как добавлять меню, а также исправлено несколько других незначительных вопросов:

from PyQt4 import QtCore, QtGui 

class Window(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     super(Window, self).__init__(parent) 
     menubar = self.menuBar() 
     menu = menubar.addMenu('Port') 
     menu.addAction('&ttyUSB0') 
     menu.addAction('&ttyUSB1') 
     menu.addAction('&ttyUSB2') 
     self.tab1 = QtGui.QWidget() 
     self.tab2 = QtGui.QWidget() 
     self.figure = plt.figure() 
     self.canvas = FigureCanvas(self.figure) 
     self.tempLabel = QtGui.QLabel('NC', self) 
     self.tempLabel.move(350, 20) 
     self.tempLabel.setStyleSheet(
      'color: black; font-size: 12pt;font: bold') 
     self.layout = QtGui.QVBoxLayout() 
     self.layout.addWidget(self.canvas) 
     self.layout.addWidget(self.tempLabel) 
     self.tab1.setLayout(self.layout) 
     self.tabs = QtGui.QTabWidget() 
     self.tabs.addTab(self.tab1, 'Database') 
     self.tabs.addTab(self.tab2, 'Current') 
     self.setCentralWidget(self.tabs) 

if __name__ == '__main__': 

    import sys 
    app = QtGui.QApplication(sys.argv) 
    window = Window() 
    window.show() 
    sys.exit(app.exec_()) 
Смежные вопросы