PyQt中文网站 > 使用教程 > PyQt如何打开新窗口 PyQt如何打开文件夹
PyQt如何打开新窗口 PyQt如何打开文件夹
发布时间:2026/08/20 13:07:12

品牌型号:联想拯救者R7000

系统:Windows 10专业版

软件版本:PyQt 5.15.11

我们在使用PyQt做桌面应用开发时,可能需要开发多窗口和打开文件夹的功能需求。例如在开发管理系统时,在列表页面点击某条记录后需要打开一个新的详情窗口来展示完整信息。或者导出数据后,程序需要导出完成后自动打开导出路径的文件夹,这两个需求怎么实现呢?本文将为大家介绍PyQt如何打开新窗口,PyQt如何打开文件夹的相关内容。

一、PyQt如何打开新窗口

在PyQt程序中,打开新窗口有两种方式,模态框和非模态框,需要根据自己的业务场景选择。例如常见的场景有:用户点击【设置】按钮后弹出配置对话框、双击列表项展示详情数据、从登录界面跳转到主功能界面等。下面我就为大家介绍一下PyQt打开新窗口的步骤。

1、通过实例化QWidget或QMainWindow打开新窗口

这是比较基础的实现方式,我们需要先编写新窗口的类代码,需要继承QWidget或QMainWindow,然后实例化该类的对象并调用show()方法显示。例如,下图所示的代码,程序创建了【NormalSubWindow】窗口,新的窗口和主窗口同时显示,可以同时操作。

创建新窗口
图1:创建新窗口

2、使用QDialog实现模态对话框

如果当前业务逻辑需要用户完成新窗口的操作后才能继续操作主窗口时,建议采用模态对话框。例如确认删除操作、填写表单信息、登录验证等。通过调用exec()方法,对话框以模态方式显示,此时主窗口不能操作,实现代码可以参考下文。

模态窗口
图2:模态窗口

3、结合信号与槽机制实现窗口间通信

在实际项目中,新窗口打开后可能还需要与主窗口做数据交互。例如,弹出详情窗口后,用户修改了客户信息并点击了【保存】,主窗口的列表就需要同步刷新。这种情况下可以自定义信号,新窗口点击【保存】按钮后,发射点击信号到槽函数,主窗口连接对应的槽函数实现数据刷新。

信号与槽机制
图3:信号与槽机制

二、PyQt如何打开文件夹

【打开文件夹】可以理解为两个不同的需求:一是弹出文件夹选择对话框,让用户选中一个目录或者文件夹给程序使用。二是在操作系统的文件资源管理器中打开指定的文件夹,下面我就为大家介绍一下这两个打开文件夹需求的实现方式。

1、使用QFileDialog.getExistingDirectory获取文件夹路径

在做数据导入、文件批量处理等需求时,需要用户手动选中一个文件夹。例如,做数据导入时,需要用户选择CSV文件所在文件夹,此时就可以调用QFileDialog.getExistingDirectory方法,弹出文件夹选择对话框,用户选择后,该方法会返回绝对路径。我们可以设置文件选择框的标题、默认打开的目录以及对话框选择目录还是文件,设置options参数为QFileDialog.ShowDirsOnly,只显示目录,不显示文件,从而避免用户误选。

读取本地文件夹
图4:读取本地文件夹

2、通过QDesktopServices.openUrl在资源管理器中打开文件夹

在导出报表、保存日志文件等需求场景中,最后需要为用户打开文件保存的文件夹。可以调用QDesktopServices.openUrl方法,传入由QUrl.fromLocalFile构造的本地文件URL,即可调起系统的文件管理器并打开指定的文件夹。

打开本地路径文件夹
图5:打开本地路径文件夹

三、总结

以上就是PyQt如何打开新窗口,PyQt如何打开文件夹的相关内容。PyQt支持两种类型的新窗口,分别是模态框和非模态框,需要根据自己的业务场景选择使用的窗口类型。如果需要打开文件夹,文中为大家介绍了用户选择本地文件夹和打开系统资源管理器并跳转到指定文件夹的方式,希望对你有所帮助。

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