您好,登錄后才能下訂單哦!
在pyqt5中要做到自適應(yīng)布局,必須應(yīng)用Layout類
下面列出類似于 html 中 float 功能的布局方法:
實(shí)現(xiàn)原理: PyQt5中的布局中,stretch 屬性類似于一個(gè)可自適應(yīng)的空白布局。會(huì)盡可能將周圍的組件布局向外擠壓
from PyQt5.QtWidgets import QVBoxLayout, QHBoxLayout # 垂直居中 def vcenter_layout(*widgets): vbox = QVBoxLayout() vbox.addStretch() for widget in widgets: vbox.addWidget(widget) vbox.addStretch() return vbox # 水平居中 def hcenter_layout(*widgets): hbox = QHBoxLayout() hbox.addStretch() for widget in widgets: hbox.addWidget(widget) hbox.addStretch() return hbox # 垂直水平居中 def center_layout(widget): hbox = QHBoxLayout() hbox.addStretch() hbox.addWidget(widget) hbox.addStretch() vbox = QVBoxLayout() vbox.addStretch() vbox.addLayout(hbox) vbox.addStretch() return vbox # 居左 def left_layout(*widgets): hbox = QHBoxLayout() for widget in widgets: hbox.addWidget(widget) hbox.addStretch() return hbox # 居右 def right_layout(*widgets): hbox = QHBoxLayout() hbox.addStretch() for widget in widgets: hbox.addWidget(widget) return hbox # 向上靠齊 def top_layout(*widgets): vbox = QVBoxLayout() for widget in widgets: vbox.addWidget(widget) vbox.addStretch() return vbox # 向下靠齊 def bottom_layout(*widgets): vbox = QVBoxLayout() vbox.addStretch() for widget in widgets: vbox.addWidget(widget) return vbox # 正常垂直分布 def v_layout(*widgets): vbox = QVBoxLayout() for widget in widgets: vbox.addWidget(widget) return vbox # 正常垂直分布 def h_layout(*widgets): vbox = QHBoxLayout() for widget in widgets: vbox.addWidget(widget) return vbox
基本上,大的布局通過(guò)上面的方法即可實(shí)現(xiàn),細(xì)節(jié)可能還需要調(diào)整 margin 或者 spacing
以上這篇Pyqt5自適應(yīng)布局實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。