pyqt 學習筆記 知識框架

2021-08-20 15:21:36 字數 3833 閱讀 8082

4-1 qmainwindow

4-2 qwidget

4-3 qlabel

4-4 文字類控制項

4-5 按鈕類控制項

4-6 qcombox(下拉列表框)

4-7 qspinbox(計數器)

4-8 qslider(滑動條)

4-9 對話方塊類控制項

4-10 視窗繪圖類控制項

4-11 拖曳與剪下板

4-12 日曆與時間

4-13 選單欄 工具欄 狀態列

4-14 qprinter

5-1 table and tree

child1 = qtreewidgetitem(root)

child1.settext(0,'child1')#0類似於樹形結構的key

child1.settext(1,'ios')#1類似於樹形結構的value

child1.seticon(0,qicon("./images/ios.png"))

child1.setcheckstate(0, qt.checked)

5-2 容器
self.tab2ui()

deftab3ui

(self):

layout=qhboxlayout()

layout.addwidget(qlabel("科目"))

layout.addwidget(qcheckbox("物理"))

layout.addwidget(qcheckbox("高數"))

self.settabtext(2,"教育程度")#這裡的2代表第二個選項卡

self.tab3.setlayout(layout)

self.leftlist = qlistwidget ()#建立乙個物件

self.leftlist.insertitem (0, '****' )

self.leftlist.insertitem (1, '個人資訊' )

self.leftlist.insertitem (2, '教育程度' )

self.stack1= qwidget()#建立3個stack物件

self.stack2= qwidget()

self.stack3= qwidget()#只負責建立了物件,具體stack中長得什麼樣子,在順序執行到下面的句子中得到結果

self.stack1ui()#3個自定義的函式。執行完這三個句子之後,stack中就會有了內容

self.stack2ui()

self.stack3ui()

self.stack = qstackedwidget (self)#建立qstackwidget物件

self.stack.addwidget (self.stack1)#將3個建立好的結構加入到物件中

self.stack.addwidget (self.stack2)

self.stack.addwidget (self.stack3)

hbox = qhboxlayout(self)

hbox.addwidget(self.leftlist)

hbox.addwidget(self.stack)

self.setlayout(hbox)

self.leftlist.currentrowchanged.connect(self.display)

defstack1ui

(self):

layout=qformlayout()

layout.addrow("姓名",qlineedit())

layout.addrow("位址",qlineedit())

self.stack1.setlayout(layout)

defstack2ui

(self):

layout=qformlayout()

pass

self.stack2.setlayout(layout)

defstack3ui

(self):

pass

5-3多執行緒
self.startbtn.clicked.connect( self.starttimer) 

self.endbtn.clicked.connect( self.endtimer)

defstarttimer

(self):

# 設定計時間隔並啟動

self.timer.start(1000)

self.startbtn.setenabled(false)

self.endbtn.setenabled(true)

defendtimer

(self):

self.timer.stop()

self.startbtn.setenabled(true)

self.endbtn.setenabled(false)

class

mythread

(qthread):

def__init__

(self):

super(thread,self).__init__()

defrun(self):

#thread的相關**

pass

#例項化乙個執行緒並用過start開始執行

#呼叫start()函式口渴啟動縣城,執行緒啟動之後就會自動呼叫並實現run方法

thread = mythread()

thread.start()

#刪除了部分函式

class

mainwidget

(qwidget):

def__init__

(self,parent=none):

self.thread = worker()#繼承乙個執行緒例項

self.btnstart.clicked.connect( self.slotstart )

#cself.thread.sinout.connect(self.slotadd)

defslotstart

(self):

self.btnstart.setenabled(false)

self.thread.start()#啟動執行緒,自動呼叫run函式

class

worker

(qthread):

#a

sinout = pyqtsignal(str)

def__init__

(self,parent=none):

def__del__

(self):

defrun

(self):

while self.working == true:

# 發出訊號

#b

self.sinout.emit(file_str)

# 執行緒休眠2秒

self.sleep(2)

提前插入說一下abc三個句子的關係:

通過在乙個例項中新增aab有聯絡,ac,bc無聯絡

ac->qthread->worker -> self.thread->c,至此,ab和c才有了聯絡

5-4 網頁互動

使用qwebengineview空間來展示html頁面,實際上使用http get方法實現web載入

view = qwebengineview()

view.load(qurl(''))

view.show()

PyQt 學習筆記2 PyQt框架簡介

pyqt 是python語言下最流行,使用最為廣泛的qt繫結,qt則是c 語言離最流行的gui程式設計框架。那什麼是qt的python繫結呢?意思就是原生的qt是c 寫的,沒法再python裡之間使用,所以pyqt使用python實現了qt同樣的介面類庫,這個類庫底層呼叫了qt的庫。介面的用法上保證...

pyqt 學習筆記

coding utf8 import sys from pyqt4 import qtgui,qtcore class my button qtgui.qwidget def init self,parent none qtgui.qwidget.init self self.setwindowti...

PyQt 學習筆記1 自定義視窗框架

自定義乙個屬於自己的視窗,初始化時自動設定好在螢幕 顯示,重寫退出事件的觸發器 closeevent 並增加了設定圖示,簡化設定標題的函式名,其它類可以繼承它 1 coding utf 8 23 import time 4import sys5 from pyqt4 import qtgui,qtc...