日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)

發(fā)布時間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

1、Qt Designer調(diào)整組件布局比例

2、addStretch()函數(shù)調(diào)整組件布局比例


在一個布局容器中,有時可能需要調(diào)整各組件的顯示比例,讓界面達(dá)到更美觀效果。

調(diào)整組件布局比例有兩種辦法:第一種是通過Qt Designer調(diào)整,另一種是使用addStretch()函數(shù)代碼調(diào)整。

下面讓我們來看看吧~

1、Qt Designer調(diào)整組件布局比例

在Qt Designer中放置Frame容器,容器中添加3個按鈕組件,并進(jìn)行水平布局設(shè)置。

?此時可以在layoutStretch屬性中設(shè)置組件布局比例。

例如,設(shè)置三個按鈕組件比例是:3:1:1,此時效果如下所示:

分隔組件在GUI顯示時是看不出來的,可以通過添加分隔組件(Horizontal Spacer(水平分隔)、Vertical? Spacer(垂直分隔))進(jìn)行比例調(diào)整。

2、addStretch()函數(shù)調(diào)整組件布局比例

addStretch()函數(shù)可以在設(shè)置stretch伸縮量后,按比例分配剩余空間。addStretch()函數(shù)的具體使用請參考下表:

例如,一個布局管理器中有三個按鈕控件,要求界面不隨著父控件的伸縮而改變。代碼實現(xiàn)如下所示:

from PyQt5.QtWidgets import QApplication ,QWidget, QVBoxLayout , QHBoxLayout  ,QPushButton
import sys  class WindowDemo(QWidget):  def __init__(self ):  super().__init__()btn1 = QPushButton(self)btn2 = QPushButton(self)btn3 = QPushButton(self)      btn1.setText('button 1')btn2.setText('button 2')btn3.setText('button 3')hbox = QHBoxLayout()# 設(shè)置伸縮量為1hbox.addStretch(1)hbox.addWidget( btn1 )# 設(shè)置伸縮量為1hbox.addStretch(1)hbox.addWidget( btn2 )# 設(shè)置伸縮量為1hbox.addStretch(1)hbox.addWidget( btn3 )# 設(shè)置伸縮量為1hbox.addStretch(1 )        self.setLayout(hbox)self.setWindowTitle("addStretch 例子")if __name__ == "__main__":  app = QApplication(sys.argv)  win = WindowDemo()  win.show()  sys.exit(app.exec_())

運(yùn)行效果如下所示:

可見,四個addStretch()函數(shù)用于在按鈕間設(shè)置伸縮量,伸縮量的比例為1:1:1:1,意思是將按鈕以外的空白地方等分為4份,并按照所設(shè)置的順序放入按鈕的布局管理器中。這樣在每一個控件之間就都添加了伸縮量,所有控件之間的間距都會相同。

若在布局中使用addStretch()函數(shù)時候,在第一個控件之前添加伸縮控件,這樣所有的控件就都會居右顯示。代碼實現(xiàn)如下所示:

import sys
from PyQt5.QtWidgets import QApplication  ,QWidget ,QHBoxLayout , QPushButtonclass Winform(QWidget):def __init__(self,parent=None):super(Winform,self).__init__(parent)self.setWindowTitle("水平布局管理例子") self.resize(800, 50)# 水平布局按照從左到右的順序進(jìn)行添加按鈕部件。hlayout = QHBoxLayout()  # 添加伸縮		hlayout.addStretch(0)hlayout.addWidget( QPushButton(str(1)) )hlayout.addWidget( QPushButton(str(2)) )hlayout.addWidget( QPushButton(str(3)))hlayout.addWidget( QPushButton(str(4)) )        hlayout.addWidget( QPushButton(str(5)) )    # 添加伸縮		#hlayout.addStretch(1)self.setLayout(hlayout)   if __name__ == "__main__":  app = QApplication(sys.argv) form = Winform()form.show()sys.exit(app.exec_())

運(yùn)行效果如下所示:

同樣道理,在最后一個控件之后添加伸縮控件,這樣所有的控件就都會居左顯示。

總結(jié)

以上是生活随笔為你收集整理的Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。