PyQt5案例汇总(简洁版)
生活随笔
收集整理的這篇文章主要介紹了
PyQt5案例汇总(简洁版)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
01菜單欄
import sys from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication from PyQt5.QtGui import QIconclass Example(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()app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())02菜單欄++
import sys from PyQt5.QtWidgets import QMainWindow from PyQt5.QtWidgets import QAction from PyQt5.QtWidgets import qApp from PyQt5.QtWidgets import QApplicationfrom PyQt5.QtGui import QIconclass Demo(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()file_menu = menubar.addMenu('&File')file_menu.addAction(exitAct)self.setGeometry(300,300,300,300)self.setWindowTitle('簡單的菜單')self.show()app = QApplication(sys.argv) ex = Demo() app.exec()03簡單的窗口(細致分析)
#!/usr/bin/env python # -*- coding:utf-8 -*- # Created by xiaoming# 本模塊的功能:<># 這個簡單的小例子展示的是一個小窗口。但是我們可以在這個小窗口上面做很多事情,改變大小,最大化,最小化等,這需要很多代碼才能實現。這在很多應用中很常見,沒必要每次都要重寫這部分代碼,Qt已經提供了這些功能。PyQt5是一個高級的工具集合,相比使用低級的工具,能省略上百行代碼。# 導入一些需要的模塊 import sys # 這里面引入了qtwidgets模塊,其中包含了基本的用戶界面控件 from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QWidget# 創建app對象 app = QApplication(sys.argv) # 每個pyqt5應用都必須創建一個應用對象 # sys.argv是一組命令行參數的列表 # python可以在shell里運行,這個參數提供對腳本控制的功能 w = QWidget() # qwidget是用戶控件中的基本控件,提供了基本的應用構造器 # 默認情況下,構造器沒有父級,沒有父級的構造器稱為窗口(window) w.resize(250,450) # resize這個方法能夠改變控件的大小,這里的意思的窗口寬250px,高450px w.move(300,200) # move()是修改控件位置的方法.他把控件放置到屏幕坐標的(300,200位置) # 注:屏幕坐標的原點是屏幕的左上角 w.setWindowTitle('我的第一個窗口') # 這里給這個窗口添加了一個標題,標題在標題欄展示 # 雖然看起來是廢話,但是以后回學習到各種欄,還是要注意一下,多了就懵逼了 w.show() # show()能讓控件在桌面上顯示出來.控件在內存中創建,之后才能在顯示器上顯示出來 sys.exit(app.exec()) # 最后,我們進入了應用的主循環中,事件處理器這個時候開始工作. # 主循環從窗口上接收事件,并把事件傳入到派發到應用控件里. # 當調用exit()方法或者直接銷毀主控件時,主循環就會結束 # sys.exit()方法能確保主循環安全退出.外部環境能通知主控件怎么結束# exec_()之所以有個下劃線,是因為exec是一個python的關鍵字04帶窗口圖標
# 首先還是要導入對應的模塊 import sys from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QWidget from PyQt5.QtGui import QIcon# 之前的例子是過程式編程,python當然支持面向對象編程 # 創建一個類 class Test(QWidget):def __init__(self):super().__init__()self.initUI() # 使用initUI方法創建了一個GUI'''面向對象編程最重要的三個部分是類(class),數據和方法.我們創建了一個類的調用,這個類繼承自QWidget.這個就意味著,我們調用了兩個構造器,一個是這個類本身的,一個是這個類繼承的super()構造器方法返回父級的對象.__init()方法是構造器的一個方法.俗稱初始化魔術方法'''def initUI(self):self.setGeometry(300, 200, 700, 400)self.setWindowTitle('標題起啥都行')self.setWindowIcon(QIcon('logo.png'))'''上面三個方法都是繼承自QWidget類.setGeometry() 有兩個作用: 把窗口放到屏幕上并且設置窗口大小.參數分別代表屏幕坐標的x y 和窗口大小的長和寬setWindowTitle就是設置標題內容,不用多說也就是說這個方法是 resize()和move()的合體.最后一個方法就是添加圖標,先創建一個QIcon對象,然后接受一個路徑主輔材作為參數,顯示圖標'''self.show()yingyong = QApplication(sys.argv) ex1 = Test() sys.exit(yingyong.exec_())# 應用和示例的對象創立,主循環開始05提示框
# 導入模塊 import sysfrom PyQt5.QtWidgets import QWidget from PyQt5.QtWidgets import QToolTip from PyQt5.QtWidgets import QPushButton from PyQt5.QtWidgets import QApplicationfrom PyQt5.QtGui import QFont# 來直接來一個類 class Demo(QWidget): #繼承自QWidget# 初始化魔術方法直接上def __init__(self):# 父類的方法還原super().__init__()# 執行自己的方法self.initUI()def initUI(self):# 這個字體的話,系統中有的都行QToolTip.setFont(QFont('微軟雅黑',15))# 這個 例子中,我們創建 了一個提示框self.setToolTip('不信了還<b>這是一個啥玩意</b>')# 這個高,實在是高# html中的標簽也能應用樣式# 強,實在是強btn = QPushButton('點我',self)# 這個靜態方法設置了提示框的字體,我們使用了15px的微軟雅黑的字體btn.setToolTip('君不見黃河之水<br>天上來')# 調用setTooltip()創建提示框可以使用富文本格式的內容btn.resize(btn.sizeHint())btn.move(50,70)self.setGeometry(200,150,800,450)self.setWindowTitle('標題就是沒有標題')# 顯示self.show()app = QApplication(sys.argv) ex1 = Demo() sys.exit(app.exec_())06關閉窗口
# 本模塊的功能:<> ''' TODO 要做的可多了 ''' # 關閉一個窗口最直觀的方式就是點擊標題欄的那個×,這個例子里面 # print(我們展示的是如何用程序關閉一個窗口) # print(這里我們將解除)到一點single和slots的知識 # 本例子使用的是QPushButton組件類 # QPushButton(string text,Qwidget parent = None) # text參數是想要顯示的按鈕名稱,parent參數是放在按鈕上的組件 # 在我們的例子里面,這個參數是QWidget.應用中的組件都是一層一層(繼承而來的) # 在這個層里,大部分的組件都有自己的父級,沒有父級的組件,是頂級的窗口# 還是tmd要導入對應的包和模塊 import sysfrom PyQt5.QtWidgets import QWidget from PyQt5.QtWidgets import QPushButton from PyQt5.QtWidgets import QApplicationfrom PyQt5.QtCore import QCoreApplication # 程序需要QtCore對象# 上來先來一個類 class Example(QWidget):# 初始化魔術方法def __init__(self):super().__init__()self.initUI()def initUI(self):qbtn = QPushButton('退出就退出',self)# 創建一個繼承自 QPushButton 的按鈕.# 第一個參數是按鈕的文本,第二個參數是按鈕的父級組件# 這個例子中,父級組件就是我們創建的繼承自QWidget 的 Example 類qbtn.clicked.connect(QCoreApplication.instance().quit)# 事件傳遞系統在PyQt5內建的single和slot機制里面.點擊按鈕之后,信號會被捕捉并給出既定的反應# QCoreApplication包含了事件的主循環,它能添加和刪除所有的事件# instance()創建 了一個它的實例.# QCoreApplication是在QApplication里創建的# 點擊事件和能終止進程并退出應用的quit函數綁定在了一起.# 在發送者和接受者之間建立了通訊,發送者就是按鈕,接受者就是應用對象qbtn.move(50,50)self.setGeometry(300,200,250,150)self.setWindowTitle("退出按鈕練習")# 顯示self.show()yingyong = QApplication(sys.argv) ex1 = Example() sys.exit(yingyong.exec_()) # 這里創建了一個點擊之后就退出窗口的按鈕07消息盒子
# 導入模塊 import sys from PyQt5.QtWidgets import QWidget from PyQt5.QtWidgets import QMessageBox from PyQt5.QtWidgets import QApplication# 創建一個類 class Example(QWidget):def __init__(self):super().__init__()# 執行自己的函數self.initUI()def initUI(self):self.setGeometry(300,200,250,150)self.setWindowTitle('消息盒子')self.show()def closeEvent(self, QCloseEvent):reply = QMessageBox.question(self, '消息啊哈!',"你確定你要退出了",QMessageBox.yes | QMessageBox.No, QMessageBox.No)if reply == QMessageBox.Yes:QCloseEvent.accept()else:QCloseEvent.ignore()app = QApplication(sys.argv) demo = Example() app.exec_()UI文件生成demo01模塊(主窗口)
test.py代碼如下:
import sys from PyQt5.QtWidgets import * # 導入生成的 py模塊 from demo01 import * # 創建app app = QApplication(sys.argv) # 實例化主窗口對象 w = QMainWindow() # 實例化并調用初始化方法 Ui_MainWindow().setupUi(w) # 顯示窗口 w.show() sys.exit(app.exec_()) pass 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的PyQt5案例汇总(简洁版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爬虫----记录某新闻详情页app逆向过
- 下一篇: 汇编实验----电话号码