博客 / 詳情

返回

pyqt圖形化顯示—3.5.佈局

上一篇講了一下佈局 只涉及了一點點,佈局就將設置好的控件排布在窗口上顯示,一共有三個半佈局方式,垂直佈局和水平佈局,網格佈局,還有半個表單佈局。由於人的閲讀習慣我們一般是整體主佈局採用垂直佈局,單個小布局框架採用水平佈局,當然直接使用網格佈局也是可以的。

引入庫

from PySide6.QtWidgets import QVBoxLayout, QHBoxLayout, QGridLayout, QFormLayout
QVBoxLayout——垂直佈局;QHBoxLayout——水平佈局,QGridLayout——網格佈局,QFormLayout——表單佈局

應用

使用也很簡單,垂直和水平是很類似的下面只舉一個例子
        # 垂直佈局
        layout = QVBoxLayout()    #水平佈局只需要更改這個函數就可以了
        layout.addWidget(QPushButton('按鈕1'))
        layout.addWidget(QPushButton('按鈕2'))
        layout.addWidget(QPushButton('按鈕3'))
        self.setLayout(layout)

我們就可以得到下面的窗口

垂直佈局:  image    水平佈局:  image

下面就是網格佈局了

 

        # 網格佈局
        layout = QGridLayout()
        layout.addWidget(QPushButton('按鈕1'), 0, 0)
        layout.addWidget(QPushButton('按鈕2'), 0, 1)
        layout.addWidget(QPushButton('按鈕3'), 1, 0)
        layout.addWidget(QPushButton('按鈕4'), 1, 1)
        layout.addWidget(QPushButton('按鈕5'), 2, 0, 1, 2)
        self.setLayout(layout)

需要注意的是網格佈局的addWidget 可以使用五個參數,(添加控件,控件起始行,控件起始列,控件行高,控件列寬)

其中行列座標起始為(0,0),行高和列寬不設置則默認為1,1

網格佈局:  image

剩下就那半個了,表單佈局,其實就是網格佈局的一種,完全可以被網格佈局代替,就不詳細介紹了

 

 

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.