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三個句子的關係:通過在乙個例項中新增
a
ab有聯絡,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...