pyqt5zhiyunxu 等比例拉伸窗口
时间: 2023-05-30 16:06:59 浏览: 197
PyQt5窗口无边框+窗口拖动+窗口拉伸全部实现
5星 · 资源好评率100%
要实现PyQt5中的等比例拉伸窗口,我们需要使用`QHBoxLayout`和`QVBoxLayout`布局管理器和`QSizePolicy`大小策略。
以下是一个示例代码,演示如何实现等比例拉伸窗口:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QVBoxLayout, QLabel
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
hbox = QHBoxLayout(self)
# 创建左侧布局
vbox_left = QVBoxLayout()
self.label1 = QLabel('Left')
self.label1.setAlignment(Qt.AlignCenter)
vbox_left.addWidget(self.label1)
hbox.addLayout(vbox_left)
# 创建右侧布局
vbox_right = QVBoxLayout()
self.label2 = QLabel('Right')
self.label2.setAlignment(Qt.AlignCenter)
vbox_right.addWidget(self.label2)
hbox.addLayout(vbox_right)
# 设置大小策略,让两个标签等比例拉伸
self.label1.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
self.label2.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
# 设置窗口大小和居中
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('等比例拉伸窗口')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在上面的代码中,我们使用`QHBoxLayout`创建一个水平布局管理器,并将其设置为窗口的主布局管理器。
然后,我们使用`QVBoxLayout`分别创建左侧和右侧布局,并将它们添加到水平布局管理器中。
接着,我们使用`QLabel`创建两个标签,并将它们添加到左侧和右侧布局中。我们还使用`setAlignment`方法将标签的文本居中显示。
最后,我们使用`QSizePolicy`设置标签的大小策略,以便它们可以等比例拉伸。我们还使用`setGeometry`方法设置窗口的大小,并使用`setWindowTitle`方法设置窗口标题。
运行代码后,您将看到一个带有两个标签的窗口。如果您拉伸窗口,您将看到两个标签以等比例拉伸。
阅读全文