pyqt是python圖形使用者介面(graphical user inte***ce, 簡稱gui)應用開發中流行的圖形開發介面庫。
在gui應用中,乙個典型的視窗座標系統如圖1所示:
gui視窗座標示意圖
螢幕左上角為座標原點,即(0,0)點,從左到右為x軸正向,從上到下為y軸正向。整個螢幕的座標系統就用頂層視窗的座標系統。
在視窗內部也有自己的座標系統,該座標系統以客戶區的左上角為原點,從左向右為x軸正方向,從上到下為y軸正方向,在客戶區周圍有標題欄和邊框。
在pyqt中,每個gui控制項稱之為小部件(widget)。所有的gui控制項都直接或者間接從qwidget繼承而來,可以通俗地看成,qwidget為所有gui部件的祖先,其他gui部件都是qwidget的子孫。
qwidget繼承自qobject,因此所有繼承自qwidget所有的小部件(widget)都支援訊號和槽機制。qwidget類實現了乙個gui控制項所必須的一些屬性和功能。乙個gui控制項具有以下一些屬性和功能:
每個控制項都是矩形的,它們按照z軸順序排序(垂直於桌面),在相同位置,前面的控制項如果在可視狀態,則會覆蓋後面的控制項,其常見特性包括:
注: 為了敘述方便,在以後的文字中, 不區分控制項和部件的稱呼差異,二者表示同一含義。
qwidget視窗基本元素如下圖所示:
qwidget控制項視窗示意圖
qwidget的常用控制視窗大小和位置的方法有:
qwidget其他一些常用方法:
注:客戶區指的是不包含邊框的部分,客戶區加邊框一般稱作視窗區。
qtwidget類繼承關係:
建立檔案qwidget.py, 改變視窗的位置和大小,並列印到終端視窗中。**如下:
import sys測試結果如下圖所示:from pyqt5.qtcore import qsize
if __name__ == '__main__':
wid = qwidget()
wid.setwindowtitle('實戰pyqt5: qwidget demo!')
wid.resize(400, 280)
wid.show()
#在終端視窗中輸出一些資料資訊
print('qwidget:')
#x,y獲取視窗左上角的座標
print('widget.x()=%d' %wid.x())
print('widget.y()=%d' %wid.y())
#width, height獲取客戶區的寬度與高度
print('widget.width()=%d' %wid.width())
print('widget.height()=%d' %wid.height())
print('')
print('qwidget.geometry')
print("widget.geometry().x() = %d " %wid.geometry().x())
print("widget.geometry().y() = %d " %wid.geometry().y())
print("widget.geometry().width() = %d " %wid.geometry().width())
print("widget.geometry().height() = %d " %wid.geometry().height())
print('')
print('qwidget.framegeometry')
print("widget.framegeometry().x() = %d " %wid.framegeometry().x())
print("widget.framegeometry().y() = %d " %wid.framegeometry().y())
print("widget.framegeometry().width() = %d " %wid.framegeometry().width())
print("widget.framegeometry().height() = %d " %wid.framegeometry().height())
qwidget視窗引數測試
前一篇:實戰pyqt5: 003-pyqt的訊號和槽機制簡介
實戰PyQt5 041 選單控制項QMenu
在乙個gui應用中,選單項都是乙個隨處都會用到的乙個控制項項。在乙個應用中選單常以以下三種方式出現 qmenu常用方法有 qmenu類繼承關係 在前一篇文章中,演示了使用qmenubar為主視窗提供選單欄的方法,在本篇中,我們進一步完善主視窗選單。import sys from pyqt5 impo...
pyqt介面控制項
建立主介面的兩種方法 1.通過繼承qtgui.qmainwindow建立類 qtgui.qmainwindow.init self 呼叫父類初始化方法 2.通過繼承qtgui.qwidget建立類 qtgui.qwidget.init self 呼叫父類初始化方法 qpushbutton 按鈕 se...
pyqt 實現控制項移除 pyqt刪除控制項的坑
最近在使用pyqt寫個專案,在remove控制項後,使用findchild仍然能找到控制項,除錯很久,才發現是pyqt的深坑.很無奈 這裡是關閉qtabwidget的標籤 def close tab self,index 1 if index 1 index self.tab widget.curr...