Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)
目錄
1、Qt Designer調整組件布局比例
2、addStretch()函數調整組件布局比例
在一個布局容器中,有時可能需要調整各組件的顯示比例,讓界面達到更美觀效果。
調整組件布局比例有兩種辦法:第一種是通過Qt Designer調整,另一種是使用addStretch()函數代碼調整。
下面讓我們來看看吧~
1、Qt Designer調整組件布局比例
在Qt Designer中放置Frame容器,容器中添加3個按鈕組件,并進行水平布局設置。
?此時可以在layoutStretch屬性中設置組件布局比例。
例如,設置三個按鈕組件比例是:3:1:1,此時效果如下所示:
分隔組件在GUI顯示時是看不出來的,可以通過添加分隔組件(Horizontal Spacer(水平分隔)、Vertical? Spacer(垂直分隔))進行比例調整。
2、addStretch()函數調整組件布局比例
addStretch()函數可以在設置stretch伸縮量后,按比例分配剩余空間。addStretch()函數的具體使用請參考下表:
例如,一個布局管理器中有三個按鈕控件,要求界面不隨著父控件的伸縮而改變。代碼實現如下所示:
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()# 設置伸縮量為1hbox.addStretch(1)hbox.addWidget( btn1 )# 設置伸縮量為1hbox.addStretch(1)hbox.addWidget( btn2 )# 設置伸縮量為1hbox.addStretch(1)hbox.addWidget( btn3 )# 設置伸縮量為1hbox.addStretch(1 ) self.setLayout(hbox)self.setWindowTitle("addStretch 例子")if __name__ == "__main__": app = QApplication(sys.argv) win = WindowDemo() win.show() sys.exit(app.exec_())
運行效果如下所示:
可見,四個addStretch()函數用于在按鈕間設置伸縮量,伸縮量的比例為1:1:1:1,意思是將按鈕以外的空白地方等分為4份,并按照所設置的順序放入按鈕的布局管理器中。這樣在每一個控件之間就都添加了伸縮量,所有控件之間的間距都會相同。
若在布局中使用addStretch()函數時候,在第一個控件之前添加伸縮控件,這樣所有的控件就都會居右顯示。代碼實現如下所示:
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)# 水平布局按照從左到右的順序進行添加按鈕部件。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_())
運行效果如下所示:
同樣道理,在最后一個控件之后添加伸縮控件,這樣所有的控件就都會居左顯示。
總結
以上是生活随笔為你收集整理的Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python Qt GUI设计:窗口布局
- 下一篇: Python Qt GUI设计:信号与槽