操作系统:Windows 10专业版
品牌型号:联想拯救者R7000
软件版本:PyQt 5.15.11
我们使用PyQt做桌面GUI应用开发时,可能需要做这样一个功能,点击按钮弹出新窗口,这个功能非常普遍,比如点击【添加数据】按钮弹出录入窗口,点击【查看详情】按钮弹出详情展示窗口。怎么做到点击按钮弹出窗口以及怎么做到点击不同按钮打开不同窗口呢?本文将为大家介绍PyQt怎么点击按钮弹出新窗口,PyQt怎么点击不同按钮打开不同窗口的相关内容。
一、PyQt怎么点击按钮弹出新窗口
点击按钮弹出新窗口,可以通过PyQt的【信号与槽】机制来实现,按钮的点击事件作为信号,窗口显示函数作为槽。二者绑定后,用户点击按钮时,触发信号,调用槽函数打开新窗口。工作中比较经典的场景是【数据录入】,下面我就以【电商运营数据统计工具】为例,为大家介绍点击按钮弹出新窗口的步骤。主窗口显示数据列表,点击【添加商品数据】按钮,弹出一个新窗口用于录入商品名称、销量、单价等信息,完成录入后关闭窗口,主窗口数据同步更新。
1、导入开发需要的模块
首先需要导入PyQt的核心组件,主要包括应用程序、主窗口、按钮、子窗口等。还需要导入sys模块,用于程序运行。具体导入模块代码可以参考下图。

2、创建主窗口类
主窗口类中,需要设置窗口大小、标题,重点是需要添加一个【添加商品数据】按钮,我们可以使用【QPushButton】创建按钮。还需要监听按钮点击事件绑定槽函数,核心代码是【self.add_btn.clicked.connect(self.open_new_window)】,这是绑定了【open_new_window】槽函数,后续我们需要编写该函数代码用于打开子页面。

3、创建子窗口类和槽函数
子窗口主要用于数据录入,可以根据需要添加标签和输入框。代码可以参考上文定义主窗口的代码。重点是定义槽函数,实现点击按钮打开新窗口。需要注意窗口的显示方式,一般用模态窗口(setWindowModality),即打开子窗口后,无法操作主窗口。

4、运行测试
代码编写完毕后,添加程序入口(main函数),启动后显示效果如下图。如果测试遇到问题,可以检查子窗口是不是在槽函数中实例化,否则程序启动就会弹出子窗口。另外是模态与非模态窗口,非模态窗口是【Qt.NonModal】。

二、PyQt怎么点击不同按钮打开不同窗口
实现点击不同按钮打开不同窗口,本质上仍然是单个按钮弹窗的“进阶操作”,还是通过【信号与槽机制】,只是给不同按钮绑定不同的槽函数,分别实例化不同的子窗口。比如开发工业控制监控系统,主窗口有【参数设置】【实时监控】【历史数据】三个按钮,点击每个按钮,分别弹出对应的窗口,实现方法如下。
1、创建多个子窗口类
例如【开发工业控制监控系统】,我们需要创建【参数设置窗口】【实时监控窗口】【历史数据查询窗口】三个子窗口,每个窗口实现不同功能,参考代码如下。

2、添加按钮绑定槽函数
主窗口类,添加三个按钮,并分别绑定对应的槽函数。需要定义三个槽函数,分别实例化不同的子窗口,同样根据需求设置模态或非模态窗口。例如下面的代码,参数设置窗口用模态,实时监控和历史查询用非模态。

3、启动测试
完成代码编写后,可以编写main函数启动测试,下图为大家验证了模态与非模态的区别,实时监控是非模态,打开窗口后,还能操作主窗口打开【参数设置】页面。但【参数设置】页面是模态,弹出后无法操作主页面。

三、总结
以上就是PyQt怎么点击按钮弹出新窗口,PyQt怎么点击不同按钮打开不同窗口的相关内容。在开发信息录入功能时,一般需要做点击按钮弹出新窗口的功能,我们可以通过信号与槽机制,绑定按钮点击事件,在槽函数中打开子页面。做点击不同按钮打开不同窗口也是同样步骤,注意模态与非模态的区别,希望本文对你有所帮助。