要控制 PyQt 窗口的缩放,可以使用 QDesktopWidget 类和 QMainWindow 类中的方法。

首先,导入必要的模块和类:

from PyQt5.QtWidgets import QApplication, QMainWindow, QDesktopWidget

然后,在主窗口类中,使用 QMainWindow 的 resizeEvent() 方法来处理窗口的大小改变事件:

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 设置窗口大小
        self.resize(500, 400)

    def resizeEvent(self, event):
        # 获取窗口大小
        size = event.size()
        # 获取屏幕大小
        desktopSize = QDesktopWidget().screenGeometry().size()
        # 计算缩放比例
        scale = min(size.width() / desktopSize.width(), size.height() / desktopSize.height())
        # 设置窗口缩放
        self.resize(scale * desktopSize.width(), scale * desktopSize.height())

在 resizeEvent() 方法中,首先获取窗口的大小,然后获取屏幕的大小。接下来,计算缩放比例,使窗口的宽度和高度保持与屏幕宽度和高度的比例不变。最后,通过调用 resize() 方法设置窗口的新大小。

最后,创建 QApplication 实例,创建主窗口对象,并显示窗口:

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())

这样,当窗口的大小改变时,窗口将按比例缩放。

PyQt 窗口缩放控制方法详解

原文地址: https://www.cveoy.top/t/topic/juZE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录