首先我们用QtGui.QMainWindow class 创建一个主窗口,然后在该主窗口中才能创建 状态栏,工具栏,以及菜单栏
一、创建状态栏
# -*- coding: utf-8 -*- import sys from PySide import QtGui class Example(QtGui.QMainWindow): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): self.statusBar().showMessage('Ready')# 在QtGui.QMainWindow中创建一个状态栏,然后设置状态栏显示的信息 self.setGeometry(300, 300, 100, 50) self.setWindowTitle('Statusbar') self.show() def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) if __name__ == '__main__': main()二、菜单栏
在该例子中,我们创建了一个只有一个菜单的菜单栏,菜单包含一个关闭窗口的动作。而且还有一个状态栏的动作,通过Ctrl+Q快捷键也可以关闭窗口
# -*- coding: utf-8 -*- """ ZetCode PySide tutorial This program creates a menubar. author: Jan Bodnar website: zetcode.com last edited: August 2011 """ import sys from PySide import QtGui class 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(self.close) # 利用信号槽机制,将退出动作和窗口的关闭函数联系起来 self.statusBar() menubar = self.menuBar() # 创建一个菜单栏 fileMenu = menubar.addMenu('&File') # 在菜单栏中添加 菜单 fileMenu.addAction(exitAction) # 将前面创建的exitAction添加到该菜单 self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Menubar') self.show() def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) if __name__ == '__main__': main()三、工具栏
在Qt里,菜单包含里所有我们可以在一个应用中用到的命令,而工具栏提供了一种快捷方式来触发大多数常用的命令(即快捷键功能)
#!/usr/bin/python # -*- coding: utf-8 -*- """ ZetCode PySide tutorial This program creates a toolbar. author: Jan Bodnar website: zetcode.com last edited: August 2011 """ import sys from PySide import QtGui class 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.triggered.connect(self.close) self.toolbar = self.addToolBar('Exit') self.toolbar.addAction(exitAction) self.setGeometry(300, 300, 350, 250) self.setWindowTitle('Toolbar') self.show() def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) if __name__ == '__main__': main()四、将以上所有功能融合
# -*- coding: utf-8 -*- """ ZetCode PySide tutorial This program creates a skeleton of a classic GUI application with a menubar, toolbar, statusbar and a central widget. author: Jan Bodnar website: zetcode.com last edited: August 2011 """ import sys from PySide import QtGui class Example(QtGui.QMainWindow): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): textEdit = QtGui.QTextEdit() self.setCentralWidget(textEdit) exitAction = QtGui.QAction('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()