Python GUI 教程二:菜单和工具栏
摘要:这篇文章是Python GUI教程系列的第二篇,将介绍如何给界面添加菜单栏和工具栏
作者:yooongchun
微信公众号:yooongchun小屋
STEP 1:状态栏:状态栏是程序中用来显示状态信息的部件。
将以下内容保存为statusbar.py
# -*- coding: utf-8 -*-
"""
这个程序展示一个状态栏
Author:yooongchun
Time:2018-05-02
"""
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication
class StatusBar(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.statusBar().showMessage('Hello,it\'s a status bar.)
self.setWindowTitle('Statusbar')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = StatusBar()
sys.exit(app.exec_())
运行
STEP 2:工具栏
将以下内容保存为tool_bar.py 运行
# -*- coding: utf-8 -*-
"""
该程序实现一个简易工具栏
Author: yooongchun
Time: 2018-05-07
"""
import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon
# 工具栏
class ToolBar(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
exitAction = QAction(QIcon('Exit.png'), 'Exit', self)
exitAction.setShortcut('Ctrl+Q')
exitAction.triggered.connect(qApp.quit)
self.toolbar = self.addToolBar('Exit')
self.toolbar.addAction(exitAction)
self.setGeometry(500, 500, 500, 500)
self.setWindowTitle('Toolbar')
self.show()
if __name__=="__main__":
app = QApplication(sys.argv)
ex = ToolBar()
sys.exit(app.exec_())
STEP 3:菜单栏
将以下内容保存为menu_bar.py 然后运行
# -*- coding: utf-8 -*-
"""
该程序实现一个简易菜单栏
Author: yooongchun
Time: 2018-05-02
"""
import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon
class MenuBar(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
exitAct = QAction(QIcon('exit.png'), '&Exit', self)
exitAct.setShortcut('Ctrl+Q')
exitAct.setStatusTip('Exit application')
exitAct.triggered.connect(qApp.quit)
self.statusBar()
menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAct)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Simple menu')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MenuBar()
sys.exit(app.exec_())