二、練習
import sys
if __name__ ==
'__main__'
:#sys.ar** 是執行python指令碼的時候 可以往程式輸入引數
w = qwidget(
)#建立視窗物件
w.resize(
250,
150)
#視窗大小
w.move(
300,
300)
#視窗位置:即執行程式後,視窗的座標
w.setwindowtitle(
'******'
)#設定標題為:******
w.show(
)#顯示視窗
))#程式進入了迴圈
效果如下:
這個簡單的程式演示了怎麼設定乙個視窗的名稱等,pyqt還提供了設定視窗的圖示,是否顯示標題欄等等。
import sys
if __name__ ==
'__main__'
:# 第乙個控制項
w1 = qwidget(
) w1.resize(
250,
150)
w1.move(
300,
300)
w1.setwindowtitle(
'first '
) w1.show(
)# 第二個控制項
w2 = qwidget(
) w2.resize(
250,
150)
w2.move(
100,
200)
w2.setwindowtitle(
'second'
) w2.show())
)# 程式進入了迴圈
效果如下所示:
可以看到我們建立了2個視窗,標題名為 second 的視窗在 first 之上,可以知道pyqt預設後建立的控制項在上層。
指定控制項的父子關係,方便統一管理。比如在乙個對話方塊中,裡面的擁有qbutton,qlabel,qtextedit控制項可以作為這個對話方塊的子控制項,這樣當父控制項(對話方塊)被銷毀的時候,子控制項也自動銷毀,而且子控制項會約束在父控制項中。
上一段**我們建立了兩個空間,現在我們讓其中乙個作為子控制項,另乙個作為父控制項:
import sys
if __name__ ==
'__main__'
:# 父控制項
f = qwidget(
) f.resize(
250,
150)
f.move(
100,
200)
f.setwindowtitle(
'mainwindow'
)#父控制項座標:原點(0,0)為螢幕的最左上角
# 子控制項
s = qwidget(
) s.resize(50,
100)
s.move(10,
10)#子控制項座標:原點(0,0)為父控制項的最左上角
s.setparent(f)
#設定f為s的父控制項
s.setstylesheet(
"background:red;"
)#設定s這個控制項的背景顏色為紅色
f.show(
)#顯示父控制項,子控制項也自動顯示))
# 程式進入了迴圈
執行效果如下:
這段程式有以下幾個知識點:
設定父子控制項的**為:s.setparent(f)
子控制項沒有設定標題欄,是因為沒有作用,因為這個控制項並沒有標題欄,f控制項是因為是頂層控制項,所以系統自動給新增的,因為這是乙個普通基本視窗都會有的結構。
通過設定控制項的表來配置控制項的背景顏色,當然,可以設定顯示的文字畫素大小,字型等,這裡暫且不詳說。
建立父控制項還有另一種方便的方式,即在建立子控制項時候,引數寫入父控制項,可一步完成建立控制項和指定父控制項的操作,程式如下所示:
import sys
if __name__ ==
'__main__'
:# 父控制項
f = qwidget(
) f.resize(
250,
150)
f.move(
100,
200)
f.setwindowtitle(
'mainwindow'
)#父控制項座標(0,0)為螢幕的最左上角
# 子控制項
s = qwidget(f)
#建立子控制項s,並指定f為其父空間
s.resize(50,
100)
s.move(10,
10)#子控制項座標(0,0)為父控制項的最左上角
s.setstylesheet(
"background:red;"
)#設定s這個控制項的背景顏色為紅色
f.show(
)#顯示父控制項,子控制項也自動顯示))
# 程式進入了迴圈
這段程式使用 s=qwidget(f) 來指定f為s的父控制項,所以也不再需要 s.setparent(f),注意到,每乙個子控制項可以指定乙個父控制項,也只能擁有乙個父控制項,如果重複指定,那麼只有最後指定的父控制項是有效的。
設計乙個簡單的視窗,執行效果如下:
:# 父控制項
f = qwidget(
) f.resize(
250,
150)
f.move(
100,
200)
f.setwindowtitle(
'mainwindow'
)#父控制項座標(0,0)為螢幕的最左上角
redb = qpushbutton(
'red'
, f)
#這是顯示的文字為『red』,指定父控制項為f
redb.setcheckable(
true
) redb.move(10,
10)redb.setstylesheet(
"background:red;font-size:20px;"
) greb = qpushbutton(
'green'
, f)
greb.setcheckable(
true
) greb.move(
100,10)
greb.setstylesheet(
"background:green;font-size:10px;"
) f.show(
)#顯示父控制項,子控制項也自動顯示))
# 程式進入了迴圈
PyQt5 學習筆記
pyqt5是由一系列python模組組成。超過620個類,6000函式和方法。能在諸如unix windows和mac os等主流作業系統上執行。pyqt5有兩種證書,gpl和商業證書。pyqt5類分為很多模組,主要模組有 qtcore 包含了核心的非gui的功能。主要和時間 檔案與資料夾 各種資料...
內建視窗 pyqt5
注意 在主視窗中需要新增乙個girdlayout self.gridlayout.addwidget self.child1 將視窗放入girdlayout中 self.child1.show 開啟子視窗1 小技巧 發現出現了兩個底邊那個東西 在由視窗檔案生成的.py檔案中找到如下 self.sta...
pyqt5學習筆記 1
from pyqt5.qt import import sys 使用sys.ar 是為了讓gui程式接收到使用者傳遞的引數 建立乙個控制項,如果這個控制項沒有父控制項,那麼pyqt5會控制項加上標題等屬性,並可以設定屬性內容 這個控制項也可以叫做頂層控制項,沒有父控制項的控制項的展示需要呼叫show...