2013-12-07 46 views
0

我創建了一個創建GUI的類。我想添加一個菜單欄,但是我不知道,如果我和一個班級合作,我應該如何將它添加到窗口中。我無法制作菜單欄設備。在一個類中創建GUI

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_())