qt水平佈局的兩個widge分別佔據三分之一和三分之二
时间: 2024-04-08 15:22:10 浏览: 59
基于jquery 的一个progressbar widge
你可以使用QHBoxLayout和QVBoxLayout实现这个布局。下面是一个示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QHBoxLayout, QVBoxLayout, QWidget
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
hbox = QHBoxLayout()
vbox_left = QVBoxLayout()
vbox_right = QVBoxLayout()
# 创建两个QWidget,分别放在左边和右边的布局中
left_widget = QWidget(self)
right_widget = QWidget(self)
left_widget.setStyleSheet("background-color: red;")
right_widget.setStyleSheet("background-color: blue;")
# 设置两个QWidget的大小比例
hbox.addWidget(left_widget, 1)
hbox.addLayout(vbox_right, 2)
# 添加一些控件到左边和右边的QWidget中
vbox_left.addStretch(1)
vbox_left.addWidget(QPushButton('Button 1'))
vbox_left.addWidget(QPushButton('Button 2'))
vbox_left.addStretch(1)
vbox_right.addStretch(1)
vbox_right.addWidget(QPushButton('Button 3'))
vbox_right.addWidget(QPushButton('Button 4'))
vbox_right.addWidget(QPushButton('Button 5'))
vbox_right.addStretch(1)
# 将左右两个QWidget添加到主窗口中
self.setLayout(hbox)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Example')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在上面的代码中,我们创建了一个主窗口,并使用QHBoxLayout和QVBoxLayout创建了一个包含两个QWidget的布局。左边的QWidget占据布局的1/3,右边的QWidget占据布局的2/3。你可以根据需要调整大小比例和添加控件。
阅读全文