1.添加状态栏
import sysfrom PyQt4 import QtGuiclass Example(QtGui.QMainWindow): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): self.statusBar().showMessage('Ready') self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Statusbar') self.show()def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_())if __name__ == '__main__': main()
我们可以看到这个程序中定义的新的 example 类是继承自 QtGui.QmainWindow 类。这个类可以用来创造一个经典的应用骨架。这个骨架包括状态栏,菜单栏以及工具栏。
self.statusBar().showMessage('Ready')
使用statusBar方法创建一个状态栏,一般位于窗口的左下角。showMessage定义状态栏的显示内容是 Ready
2.添加菜单栏
import sysfrom PyQt4 import QtGuiclass Example(QtGui.QMainWindow): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): exitAction = QtGui.QAction(QtGui.QIcon('exit.png'), '&Exit', self) exitAction.setShortcut('Ctrl+Q') exitAction.setStatusTip('Exit application') exitAction.triggered.connect(QtGui.qApp.quit) self.statusBar() menubar = self.menuBar() fileMenu = menubar.addMenu('&File') fileMenu.addAction(exitAction) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('Menubar') self.show() def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_())if __name__ == '__main__': main()
这段程序在原有的基础上添加了一个菜单栏。这个菜单栏只有一个选项就是终止这个应用
exitAction = QtGui.QAction(QtGui.QIcon('exit.png'), '&Exit', self) exitAction.setShortcut('Ctrl+Q') exitAction.setStatusTip('Exit application') exitAction.triggered.connect(QtGui.qApp.quit)
首先,为这个应用添加一个action。QAction中规定了这个action的名字叫做 Exit,使用的图标是exit.png。 setShortcut 将这个action的快捷键定义为ctrl+Q。并用setStatusTip规定,在应用进行这个action时,应用对应的状态栏中将显示Exit application。最后,这个action的功能通过connect链接到QtGui.qApp.quit,被赋予退出的功能
menubar = self.menuBar() fileMenu = menubar.addMenu('&File') fileMenu.addAction(exitAction)
创建了一个菜单栏,并用addMenu添加了菜单名称为 File。在File中,添加了之前定制的action。
2.添加工具栏
import sysfrom PyQt4 import QtGuiclass Example(QtGui.QMainWindow): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): exitAction = QtGui.QAction(QtGui.QIcon('exit24.png'), 'Exit', self) exitAction.setShortcut('Ctrl+Q') exitAction.triggered.connect(QtGui.qApp.quit) self.toolbar = self.addToolBar('Exit') self.toolbar.addAction(exitAction) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('Toolbar') self.show() def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_())if __name__ == '__main__': main()
直接使用addToolBar 方法添加一个名为 Exit 的工具栏。用addAction方法将exitAction添加给这个工具。
2.添加文本操作窗口
import sysfrom PyQt4 import QtGuiclass Example(QtGui.QMainWindow): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): textEdit = QtGui.QTextEdit() self.setCentralWidget(textEdit) exitAction = QtGui.QAction(QtGui.QIcon('exit24.png'), 'Exit', self) exitAction.setShortcut('Ctrl+Q') exitAction.setStatusTip('Exit application') exitAction.triggered.connect(self.close) self.statusBar() menubar = self.menuBar() fileMenu = menubar.addMenu('&File') fileMenu.addAction(exitAction) toolbar = self.addToolBar('Exit') toolbar.addAction(exitAction) self.setGeometry(300, 300, 350, 250) self.setWindowTitle('Main window') self.show() def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_())if __name__ == '__main__': main()
QtGui.QTextEdit 方法添加一个文本编辑窗口。setCentralWidget 将这个窗口放置在原来窗口的中心。