python GUI庫圖形介面開發之PyQt5佈局控制元件QHBoxLayout詳細使用方法與例項
阿新 • • 發佈:2020-03-07
PyQt5佈局控制元件QHBoxLayout簡介
採用QBOXLayout類可以在水平和垂直方向上排列控制元件,QHBoxLayout和QVBoxLayout類繼承自QBoxLayout
採用QHBoxLayout類,按照從左到右的順序來新增控制元件
QHBoxLayout類中常用的方法如下
方法 | 描述 |
---|---|
addLayout(self,stretch=0) | 在視窗的右邊添加布局,使用stretch(伸縮量)進行伸縮,伸縮量預設為0 |
addWidget(self,QWidget.stretch,Qt.Alignmeny alihnment) | 在佈局中新增控制元件 |
stretch(伸縮量),只適用於QBoxLayout,控制元件和視窗會隨著伸縮量的變大而增大 | |
alignment:指定的對齊方式 | |
addSpacing(self,int) | 設定各控制元件的上下間距,通過該方法可以增加額外的控制元件 |
QHBoxLayout對齊方式引數
引數 | 描述 |
---|---|
Qt.AlignLeft | 水平方向居左對齊 |
Qt.AlignRight水平方向具有對齊 | |
Qt.AlignCenter | 水平方向居中對齊 |
Qt.AlignJustify | 水平方向兩端對齊 |
Qt.AlignTop | 垂直方向靠上對齊 |
Qt.AlignBottom | 垂直方向靠下對齊 |
Qt.AlignVCenter | 垂直方向居中對齊 |
QHBoxLayout水平佈局管理例項
import sys from PyQt5.QtWidgets import QApplication,QWidget,QHBoxLayout,QPushButton class Winform(QWidget): def __init__(self,parent=None): super(Winform,self).__init__(parent) self.setWindowTitle("水平佈局管理例子") # 水平佈局按照從左到右的順序進行新增按鈕部件。 hlayout = QHBoxLayout() 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))) # todo 優化1 設定控制元件間距 #hlayout.setSpacing(20) self.setLayout(hlayout) if __name__ == "__main__": app = QApplication(sys.argv) form = Winform() form.show() sys.exit(app.exec_())
執行效果圖
優化一:設定各控制元件之間的間距
hlayout.setSpacing(20)
QHBoxLayout水平佈局對齊方式例項
在某些情況下,需要將佈局中的某些控制元件居中,俱下顯示,那麼可以通過對齊方式引數Qt.Alignment來設定,示範如下
import sys from PyQt5.QtWidgets import QApplication,QPushButton from PyQt5.QtCore import Qt class Winform(QWidget): def __init__(self,self).__init__(parent) self.setWindowTitle("水平佈局管理例子") self.resize(800,200) # 水平佈局按照從左到右的順序進行新增按鈕部件。 hlayout = QHBoxLayout() #水平居左 垂直居上 hlayout.addWidget( QPushButton(str(1)),Qt.AlignLeft | Qt.AlignTop) hlayout.addWidget( QPushButton(str(2)),Qt.AlignLeft | Qt.AlignTop) hlayout.addWidget( QPushButton(str(3))) #水平居左 垂直居下 hlayout.addWidget( QPushButton(str(4)),Qt.AlignLeft | Qt.AlignBottom ) hlayout.addWidget( QPushButton(str(5)),Qt.AlignLeft | Qt.AlignBottom) self.setLayout(hlayout) if __name__ == "__main__": app = QApplication(sys.argv) form = Winform() form.show() sys.exit(app.exec_())
執行效果圖如下
本文主要講解了關於PyQt5佈局控制元件QHBoxLayout詳細使用方法與例項,更多PyQt5佈局控制元件的知識請檢視下面的相關連結