pyqt5控件随窗口变化怎么实现

avatar
作者
筋斗云
阅读量:3

要实现PyQt5控件随窗口变化,可以使用布局管理器来自动调整控件的大小和位置。

首先,需要选择合适的布局管理器,常用的有QHBoxLayout(水平布局)和QVBoxLayout(垂直布局)。接下来,在布局管理器中添加控件。

在窗口的resizeEvent事件中,可以重新调整控件的大小和位置,使其适应窗口的变化。可以通过控件的setGeometry方法来设置控件的大小和位置。

下面是一个示例代码:

import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QHBoxLayout, QWidget, QLabel  class MyWindow(QMainWindow):     def __init__(self):         super().__init__()         self.initUI()      def initUI(self):         # 创建一个水平布局         layout = QHBoxLayout()          # 创建两个标签控件         label1 = QLabel('Label 1')         label2 = QLabel('Label 2')          # 将标签控件添加到布局中         layout.addWidget(label1)         layout.addWidget(label2)          # 创建一个中央部件,并设置为布局         widget = QWidget()         widget.setLayout(layout)          # 将中央部件设置为窗口的中央部件         self.setCentralWidget(widget)      def resizeEvent(self, event):         # 获取窗口的大小         size = event.size()          # 调整控件的大小和位置         self.centralWidget().setGeometry(0, 0, size.width(), size.height())          # 调用父类的resizeEvent方法         super().resizeEvent(event)  if __name__ == '__main__':     app = QApplication(sys.argv)     window = MyWindow()     window.show()     sys.exit(app.exec_()) 

在上面的代码中,我们创建了一个QHBoxLayout布局,并添加了两个QLabel控件。然后,将布局设置为窗口的中央部件。在窗口的resizeEvent事件中,我们根据窗口的大小调整了中央部件的大小和位置。

运行代码后,当调整窗口的大小时,两个标签控件会随着窗口的变化而变化。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!