pyqt5等比例拉伸窗口
时间: 2023-05-30 20:06:46 浏览: 445
要实现PyQt5中的等比例拉伸窗口,您可以使用QGridLayout和QSizePolicy。
首先,创建一个QWidget,将其设置为QGridLayout,并将其添加到主窗口中。然后,将所有的控件添加到网格布局中,并将它们的QSizePolicy设置为QSizePolicy.Expanding。
在网格布局中,将每个控件的列和行比例设置为1,这将确保每个控件都按比例进行拉伸。
最后,使用setMinimumSize方法设置QWidget的最小大小,这将确保在窗口太小时,控件不会被缩小。
以下是一个示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout, QPushButton, QLabel, QSizePolicy
class MainWindow(QWidget):
def __init__(self):
super().__init__()
# Create a grid layout for the window
layout = QGridLayout()
self.setLayout(layout)
# Add widgets to the grid layout
label1 = QLabel("Label 1")
label1.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
layout.addWidget(label1, 0, 0, 1, 1)
label2 = QLabel("Label 2")
label2.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
layout.addWidget(label2, 0, 1, 1, 1)
button1 = QPushButton("Button 1")
button1.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
layout.addWidget(button1, 1, 0, 1, 1)
button2 = QPushButton("Button 2")
button2.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
layout.addWidget(button2, 1, 1, 1, 1)
# Set the minimum size of the window
self.setMinimumSize(400, 300)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
该代码将创建一个QWidget,其中包含两个标签和两个按钮。当您调整窗口的大小时,每个控件都将按比例进行拉伸,而不会变形。
阅读全文