中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中GUI庫圖形界面開發之PyQt5窗口控件QWidget怎么用

發布時間:2021-06-18 09:17:11 來源:億速云 閱讀:184 作者:小新 欄目:開發技術

這篇文章主要介紹python中GUI庫圖形界面開發之PyQt5窗口控件QWidget怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

QWidget基本介紹

基礎窗口控件QWidget類是所有用戶界面對象的基類,所有的窗口或者控件都直接或者間接的繼承自QWidget類。

窗口坐標系統

PyQt使用統一的坐標系統來定位窗口控件的位置和大小,具體如下

python中GUI庫圖形界面開發之PyQt5窗口控件QWidget怎么用

以屏幕左上角為原點,也就是(0, 0)點,從左向右為x軸正方向,從上向下為y軸正方向,整個屏幕的坐標系統用來定位頂層窗口。

在窗口內部也有自己的坐標系統,該坐標系統以客戶區的左上角為原點,從左向右為x軸正方向,從上到下為y軸正方向,在客戶區周圍有標題欄和邊框。

python中GUI庫圖形界面開發之PyQt5窗口控件QWidget怎么用

從上圖中,可以將這些成員函數分成三類:

  1. QWidget直接提供的成員函數,x(), y()獲得整個窗口左上角的坐標,width()和height()返回客戶區的寬度和高度。

  2. QWidget的geometry()提供的成員函數,x(),y()返回的是客戶區左上角坐標,width(),height()返回客戶區寬度和高度。

  3. QWidget的frameGeometry()提供的成員函數,x(),y()返回的是整個窗口左上角的坐標,-width(),height()也是整個對話框的寬度和高度,包括標題欄和邊框。

從上圖可以看出來,QWidget有兩種常見的幾何結構

不包含外面各種邊框的幾何結構(客戶區)。

包含各種邊框的幾何結構。

不包含邊框常用函數

改變客戶區面積

QWidget.resize(width, height)

獲取客戶區大小

QWidget.size()

獲取客戶區的寬度和高度

QWidget.width()

QWidget.height()

設置客戶區的寬度和高度(在某些維度上值不可改變)

QWidget.setFixedWidth(int width)

QWidget.setFixedHeight(int height)

QWidget.setFixedSize(int width, int height)

設置窗口的位置(值可以改變)

QWidget.setGeometry(int x, int y, int width, int height)

包含邊框常用函數

獲取窗口的大小和位置

QWidget.frameGeometry()

設置窗口的位置

QWidget.move(int x, int y)

獲取窗口左上角坐標

QWidget.pos()

屏幕坐標系統實例

from PyQt5.QtWidgets import QApplication,QMainWindow,QWidget,QPushButton
import sys

app=QApplication(sys.argv)
#窗口
widget=QWidget()
#按鈕繼承在窗口中,并實例化
btn=QPushButton(widget)
#按鈕命名
btn.setText('button')

#以QWdiget左上角為(0,0)點,按鈕移動到坐標處
btn.move(20,20)
#不同的操作系統可能對窗口的最小寬度有規定,若設置寬度小于規定值,則會以規定值進行顯示
widget.resize(300,200)
#以屏幕左上角為(0,0)的點,窗口移動到指定坐標處
widget.move(250,200)


widget.setWindowTitle('pyqt坐標系統例子')
widget.show()

#輸出窗口的rect(x,y,width,height)
print('QWidget:')
#x,y獲取窗口左上角的坐標
print('w.x()=%d' %widget.x())
print('w.y()=%d' %widget.y())
#width,height獲取客戶區的寬度與高度
print('w.width()=%d' %widget.width())
print('w.height()=%d' %widget.height())
#客戶區的大小
print('客戶區的大小:%d' %widget.size())


print('QWidget.geometry')
#x,y獲取客戶區的左上角坐標(包含窗口的標題與邊框部分)
print('widget.geometry().x()=%d' %widget.geometry().x())
print('widget.geometry().y()=%d' %widget.geometry().y())
#width,height獲取客戶區的寬度與高度
print('widget.geometry().width()=%d' %widget.geometry().width())
print('widget.geometry().height()=%d' %widget.geometry().height())



sys.exit(app.exec_())

效果如下圖:輸出客戶區的相關屬性

python中GUI庫圖形界面開發之PyQt5窗口控件QWidget怎么用

設置程序圖標實例

import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QWidget,QApplication


#創造一個名為Icon的窗口類,繼承自Qwidget
class Icon(QWidget):
  def __init__(self,parent=None):
    super(Icon, self).__init__(parent)
    self.initUI()
  #初始化窗口
  def initUI(self):
    #設置窗口在屏幕中的位置與窗口的大小
    self.setGeometry(300,300,250,150)
    self.setWindowTitle('程序圖標')
    #設置窗口圖標,需要提供圖標的路徑
    self.setWindowIcon(QIcon('E:\pyqt5快速開發與實戰\第四章\images\cartoon1.ico'))
if __name__ == '__main__':
  app=QApplication(sys.argv)
  icon=Icon()
  icon.show()
  sys.exit(app.exec_())

效果如下:實現了程序左上角圖標的加載

python中GUI庫圖形界面開發之PyQt5窗口控件QWidget怎么用

顯示氣泡提示信息實例

import sys
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QWidget,QApplication,QToolTip

class WinForm(QWidget):
  def __init__(self,parent=None):
    super(WinForm, self).__init__(parent)
    self.initUI()

  def initUI(self):
    #設置氣泡提示信息的字體和大小
    QToolTip.setFont(QFont('SansSerif',10))
    #設置氣泡提示
    self.setToolTip('這是一個</b>氣泡顯示</b>')
    self.setGeometry(200,300,400,400)
    self.setWindowTitle('氣泡提示demo')
if __name__ == '__main__':
  app=QApplication(sys.argv)
  win=WinForm()
  win.show()
  sys.exit(app.exec_())

以上是“python中GUI庫圖形界面開發之PyQt5窗口控件QWidget怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

田东县| 鹰潭市| 荆门市| 阳信县| 北海市| 襄垣县| 安图县| 镇雄县| 靖远县| 方城县| 剑川县| 正蓝旗| 漯河市| 满洲里市| 鹿泉市| 项城市| 遂平县| 张家口市| 富顺县| 盐源县| 连州市| 庆元县| 金门县| 四会市| 万源市| 冀州市| 疏附县| 金门县| 珲春市| 陆丰市| 蕲春县| 建始县| 南康市| 云阳县| 新余市| 芮城县| 绥阳县| 炎陵县| 和田市| 千阳县| 东明县|