pyqt5 -——選單和工具欄
阿新 • • 發佈:2018-12-23
一. 狀態列
# -*- coding: utf-8 -*-
# @Time : 2018/12/22 12:37
# @Author : Bo
# @Email : [email protected]
# @File : demo3.py
# @Software: PyCharm
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.statusBar().showMessage('Ready')
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Statusbar')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
狀態列是由QMainWindow建立的。
self.statusBar().showMessage('Ready')
呼叫QtGui.QMainWindow
類的statusBar()
方法,建立狀態列。第一次呼叫建立一個狀態列,返回一個狀態列物件。showMessage()
方法在狀態列上顯示一條資訊。
二 選單欄
import sys
from PyQt5.QtWidgets import QAction,qApp,QApplication,QMainWindow
from PyQt5.QtGui import QIcon
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
exitAct = QAction(QIcon('1.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, 250, 150)
self.setWindowTitle('simple menu')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
我們建立了只有一個命令的選單欄,這個命令就是終止應用。同時也建立了一個狀態列。而且還能使用快捷鍵Ctrl+Q
退出應用。
exitAct = QAction(QIcon('exit.png'), '&Exit', self)
exitAct.setShortcut('Ctrl+Q')
exitAct.setStatusTip('Exit application')
QAction
是選單欄、工具欄或者快捷鍵的動作的組合。前面兩行,我們建立了一個圖示、一個exit的標籤和一個快捷鍵組合,都執行了一個動作。第三行,建立了一個狀態列,當滑鼠懸停在選單欄的時候,能顯示當前狀態。
exitAct.triggered.connect(qApp.quit)
當執行這個指定的動作時,就觸發了一個事件。這個事件跟QApplication的quit()
行為相關聯,所以這個動作就能終止這個應用。
menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAct)
menuBar()
建立選單欄。這裡建立了一個選單欄,並在上面添加了一個file選單,並關聯了點選退出應用的事件。
三 .子選單
import sys
from PyQt5.QtWidgets import QAction, qApp, QApplication, QMainWindow, QMenu
from PyQt5.QtGui import QIcon
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
exitAct = QAction(QIcon('1.png'),'&Exit',self)
exitAct.setShortcut('Ctrl+Q') #快捷鍵
exitAct.setStatusTip('Exit Application')
exitAct.triggered.connect(qApp.quit)
impMenu = QMenu("Import",self)
impAct = QAction("Import mail",self)
impMenu.addAction(impAct)
self.statusBar()
menubar = self.menuBar()
fileMenu = menubar.addMenu("&File")
fileMenu.addAction(exitAct)
newAct = QAction("new",self)
fileMenu.addAction(newAct)
fileMenu.addMenu(impMenu)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('simple menu')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
這個例子裡,有兩個子選單,一個在file選單下面,一個在file的import下面。
impMenu = QMenu('Import', self)
使用QMenu
建立一個新選單。
impAct = QAction('Import mail', self)
impMenu.addAction(impAct)
使用addAction
新增一個動作。
四 . 勾選選單,右鍵選單
五 . 工具欄
六 . 主視窗
import sys
from PyQt5.QtWidgets import QAction, qApp, QApplication, QMainWindow, QMenu, QTextEdit
from PyQt5.QtGui import QIcon
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
textEdit = QTextEdit()
self.setCentralWidget(textEdit)
exitAct = QAction(QIcon('1.png'),'&Exit',self)
exitAct.setShortcut('Ctrl+Q') #快捷鍵
exitAct.setStatusTip('Exit Application')
exitAct.triggered.connect(qApp.quit)
impMenu = QMenu("Import",self)
impAct = QAction("Import mail",self)
impMenu.addAction(impAct)
self.statusBar()
menubar = self.menuBar()
fileMenu = menubar.addMenu("&File")
fileMenu.addAction(exitAct)
newAct = QAction("new",self)
fileMenu.addAction(newAct)
fileMenu.addMenu(impMenu)
toolbar = self.addToolBar('Exit')
toolbar.addAction(exitAct)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('simple menu')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())