在类中创建GUI

时间:2013-12-07 19:40:38

标签: python pyqt

我创建了一个创建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 个答案:

答案 0 :(得分: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_())