PyQt5 – 如何设置窗口的最小尺寸 | setMinimumSize方法

  • Post category:Python

PyQt5 是 Python 中非常流行的 GUI 工具包,它可以帮助我们快速的构建出各种样式的 GUI 应用程序。其中,setMinimumSize() 方法是 PyQt5 中一个非常常用的功能,它主要用来设置窗口的最小尺寸,以防止窗口因为过小而无法正常显示。

方法签名

setMinimumSize() 方法的函数签名如下:

setMinimumSize(self, QSize) -> None
setMinimumSize(self, int, int) -> None

其中,第一种签名是针对参数类型为 QSize 的情况,第二种签名则是接收两个整型参数,用于设置最小尺寸的宽度和高度。

如何使用 setMinimumSize()

在 PyQt5 中,使用 setMinimumSize() 方法十分简单,只需要在需要设置最小尺寸的窗口对象中调用这个方法,并传入相应的参数即可。下面通过两个示例详细讲解如何设置窗口的最小尺寸。

示例一:使用 QSize 设置最小尺寸

首先,我们需要导入 PyQt5 中的 QtWidgets 模块,并创建一个 QMainWindow 对象(即主窗口对象),然后使用 setMinimumSize() 方法设置窗口的最小尺寸。下面是具体代码实现:

from PyQt5 import QtWidgets

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        # 设置窗口标题
        self.setWindowTitle("MainWindow")

        # 设置窗口的最小尺寸
        self.setMinimumSize(QtWidgets.QSize(400, 300))

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

在上述代码中,我们首先导入了 PyQt5 中的 QtWidgets 模块,并定义了一个 MainWindow 类,该类继承自 QtWidgets.QMainWindow,其中实现了一个 init_ui() 方法用于初始化界面。在 init_ui() 方法中,我们调用了 setMinimumSize() 方法来设置窗口的最小尺寸为 QSize(400, 300),这里的 QSize 对象分别代表了最小宽度和最小高度。

示例二:使用两个整型参数设置最小尺寸

除了使用 QSize 对象来设置最小尺寸外,我们还可以使用两个整型参数来指定最小宽度和最小高度,具体代码如下:

from PyQt5 import QtWidgets

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        # 设置窗口标题
        self.setWindowTitle("MainWindow")

        # 设置窗口的最小尺寸
        self.setMinimumSize(400, 300)

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

在上述代码中,我们在 init_ui() 方法中调用了 setMinimumSize() 方法,并传入了两个整型参数 400 和 300,用于指定窗口的最小宽度和最小高度。

总结

通过上述两个示例,我们可以看出,在 PyQt5 中使用 setMinimumSize() 方法非常简单,只需要在需要设置最小尺寸的窗口对象中调用这个方法即可。同时,我们需要注意的是,为了确保设置的最小尺寸能够正常显示,对于过于特殊的最小尺寸建议进行兼容性处理。