PyQt中文网站 > 新手入门 > PyQt如何多窗口切换 PyQt如何固定窗口大小
PyQt如何多窗口切换 PyQt如何固定窗口大小
发布时间:2026/05/25 11:20:51

操作系统:Windows 10专业版

品牌型号:联想拯救者R7000

软件版本:PyQt 5.15.11

我们在做PyQt桌面GUI开发中,可能涉及多窗口切换以及窗口固定大小的需求。例如主窗口点击【设置】弹出设置窗口。为了避免窗口里的组件混乱,可能需要固定窗口大小,但是很多开发者还不知道怎么实现多窗口切换以及固定窗口的方式,本文将为大家介绍PyQt如何多窗口切换,PyQt如何固定窗口大小的相关内容。

一、PyQt如何多窗口切换

在开发大型软件时,单个页面无法容纳所有功能,就需要做“多窗口切换”功能,下面我就为大家介绍一下PyQt多窗口切换的方式。

1、父子窗口切换

如果需要的是主窗口弹出子窗口的效果,比如主界面点击【设置】按钮,弹出单独的设置窗口,关闭设置窗口后,又返回主窗口,且主窗口一直显示。实现这种效果需要给子窗口设置父类,实现时,先定义主窗口和子窗口两个类,在主窗口中绑定按钮点击事件,点击后创建子窗口实例并显示,子窗口关闭时无需额外操作,不会影响主窗口。例如在开发用户管理系统时,主窗口显示用户列表,点击【添加用户】弹出新窗口,输入用户信息并保存后,关闭子窗口,主窗口刷新数据,就是典型的父子窗口切换场景,代码可参考信号与槽的绑定方式,如下图所示。

父子窗口切换
图1:父子窗口切换

2、同级窗口切换

同级窗口切换的实现方式是在新窗口显示后,关闭原窗口,并不是退出程序。例如开发登录功能时,我们输入账号密码验证通过后,跳转至主窗口,同时需要关闭登录窗口,就需要【同级窗口切换】。代码实现方式也是通过按钮点击事件触发,调用原窗口的close()方法关闭。

同级窗口切换
图2:同级窗口切换

3、多页面切换(QStackedWidget)

如果需要实现主窗口内有多个功能模块,来回切换的场景,比如后台管理系统中,【首页】【用户管理】【数据统计】等模块都在主窗口内,不需要弹出新窗口。这就需要将多个页面(QWidget)添加到QStackedWidget容器中,通过按钮点击事件切换容器中显示的页面。可以理解为【单窗口多页面】,但是也是工作中常用的“多窗口”方式。通过【setCurrentIndex()】方法可以快速切换页面,同时也需要搭配信号与槽。

多页面切换
图3:多页面切换

二、PyQt如何固定窗口大小

在PyQt开发中,如果不希望用户随便调整窗口大小,可以设置固定大小。一般登录窗口、弹窗这类控件简单、布局少的页面会设置固定大小。防止窗口拉伸后出现控件错位、文字重叠等问题,影响用户体验,下面我就为大家介绍一下PyQt设置固定窗口大小的方式。

1、使用setFixedSize()方法

这种方式直接固定窗口的宽和高,无法缩放、拉伸、最大化窗口,该方法需要在窗口初始化时调用,传入两个参数,分别是宽度和高度,代码可以参考下图第三行,设置窗口固定为400x300像素,运行后,用户无法拖动窗口,右上角最大化是灰色。如果窗口使用了布局管理器,需要在布局后调用该方法,否则可能会出现控件显示不全的情况。

setFixedSize()方法固定窗口大小
图4:setFixedSize()方法固定窗口大小

2、使用setMinimumSize()和setMaximumSize()方法

这两个函数可以限制窗口的最小和最大尺寸,用户可在限制范围内拉伸窗口,在数据展示窗口场景中比较适用,可以让用户适当放大窗口查看更多数据,但不能缩小到导致控件显示不全,例如设置最小尺寸为500x300,最大尺寸为1000x600,代码案例可以参考下文。

设置最大/最小尺寸限制
图5:设置最大/最小尺寸限制

三、总结

以上就是PyQt如何多窗口切换,PyQt如何固定窗口大小的相关内容。文中为大家介绍了父子窗口切换和同级窗口切换的方式,适配不同的工作场景。如果要固定窗口大小,我们可以通过setFixedSize()方法设置固定尺寸,或者通过setMinimumSize()和setMaximumSize()方法设置最小和最大缩放区间,希望对你有所帮助。

读者也访问过这里:
135 2431 0251