1. 程式人生 > >pyqt5 -——選單和工具欄

pyqt5 -——選單和工具欄

一. 狀態列

# -*- 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新增一個動作。

submenu

四  . 勾選選單,右鍵選單

五 . 工具欄

六 . 主視窗

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_())