PyQt5 學習筆記

2021-10-04 16:30:28 字數 1958 閱讀 7350

pyqt5是由一系列python模組組成。超過620個類,6000函式和方法。能在諸如unix、windows和mac os等主流作業系統上執行。pyqt5有兩種證書,gpl和商業證書。

pyqt5類分為很多模組,主要模組有:qtcore 包含了核心的非gui的功能。主要和時間、檔案與資料夾、各種資料、流、urls、mime類檔案、程序與執行緒一起使用。 qtgui 包含了視窗系統、事件處理、2d影象、基本繪畫、字型和文字類。 qtwidgets qt********** qtbluetooth qtnetwork...

import sys
這裡引入了pyqt5.qtwidgets模組,這個模組包含了基本的元件。

每個pyqt5應用都必須建立乙個應用物件。sys.ar**是一組命令列引數的列表。python可以在shell裡執行,這個引數提供對指令碼控制的功能。

w.resize(250, 150)
resize()方法能改變控制項的大小,這裡的意思是視窗寬250px,高150px。

w.setwindowtitle('******')
我們給這個視窗新增了乙個標題,標題在標題欄展示(雖然這看起來是一句廢話,但是後面還有各種欄,還是要注意一下,多了就蒙了)。

w.show()
show()能讓控制項在桌面上顯示出來。控制項在記憶體裡建立,之後才能在顯示器上顯示出來。

最後,我們進入了應用的主迴圈中,事件處理器這個時候開始工作。主迴圈從視窗上接收事件,並把事件傳入到派發到應用控制項裡。當呼叫exit()方法或直接銷毀主控件時,主迴圈就會結束。sys.exit()方法能確保主迴圈安全退出。外部環境能通知主控件怎麼結束。

exec_()之所以有個下劃線,是因為exec是乙個python的關鍵字。

self.initui()
使用initui()方法建立乙個gui。

視窗圖示通常是顯示在視窗的左上角,標題欄的最左邊。下面的例子就是怎麼用pyqt5建立乙個這樣的視窗。

# 自己準備乙個web.png

self.setgeometry(300, 300, 300, 220)

self.setwindowtitle('icon')

self.setwindowicon(qicon('web.png'))

最後乙個方法是新增了圖示。先建立乙個qicon物件,然後接受乙個路徑作為引數顯示圖示。

qtooltip.setfont(qfont('sansserif', 10))
這個靜態方法設定了提示框的字型,我們使用了10px的sansserif字型。

self.settooltip('this is aqwidgetwidget')
呼叫settooltip()建立提示框可以使用富文字格式的內容。

一、qt5_qmovie

有些時候,我們需要在介面上顯示動畫,簡單的動畫如gif格式,這種格式的無法定義為qpixmap或者qimage的例項,所以就需要我們使用qmovie來進行例項化。

二、mainwindow

qt中的頂層視窗稱為mainwindow,屬於類qmainwindow,qmainwindow也是繼承於qwidget。通過子類化qmainwindow可以建立乙個應用程式的視窗。

mainwindow的結構分為五個部分:選單欄(menu bar)、工具欄(*******s)、停靠視窗(dock widgets)、狀態列(status bar)和**視窗(central widget)。可以窗體設計中,用下面的圖形表示之

三、qt setupui

在qt窗體設計中,可以呼叫setupui()函式初始化窗體。

pyqt5學習筆記 1

from pyqt5.qt import import sys 使用sys.ar 是為了讓gui程式接收到使用者傳遞的引數 建立乙個控制項,如果這個控制項沒有父控制項,那麼pyqt5會控制項加上標題等屬性,並可以設定屬性內容 這個控制項也可以叫做頂層控制項,沒有父控制項的控制項的展示需要呼叫show...

pyqt5入門學習筆記

import sys if name main 建立乙個視窗 w qwidget 設定乙個視窗尺寸 w.resize 400,200 移動視窗 w.move 300,300 設定視窗標題 w.setwindowtitle 第乙個基於pyqt5的桌面應用 顯示視窗 w.show 進入程式的主迴圈,並通...

PyQt5 學習筆記(1)

在學習pyqt5的布局時,發現如下問題 當使用pyqt5.qtwidgets.qmainwindow 建立主視窗,並向主視窗新增布局時,會報警告 qwidget setlayout attempting to set qlayout on qmainwindow which already has ...