您好,登錄后才能下訂單哦!
在pyqt5中要做到自適應布局,必須應用Layout類
下面列出類似于 html 中 float 功能的布局方法:
實現原理: PyQt5中的布局中,stretch 屬性類似于一個可自適應的空白布局。會盡可能將周圍的組件布局向外擠壓
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
基本上,大的布局通過上面的方法即可實現,細節可能還需要調整 margin 或者 spacing
以上這篇Pyqt5自適應布局實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。