Mooreの小站

Moore的个人小站

Python 第六节

2025-04-08

今日笔记稀少

一、PyQt

今日内容:布局管理器+文件对话框+信号+槽

(一)布局管理器

问题:之前我们创建界面的时候,在一个文件里面将所有永恒岛的空间全部加进去了

优化:分开,窗口分开,自定义组件

1、水平管理器

QHBoxLayout

  • 自定一个类去继承QWidget → 袭击创建一个窗口类

  • 在窗口类里面创建一个布局管理器

  • 设置窗口的布局方式为你创建的布局管理器的方式

  • 将创建的控件加入到布局管理器当中

2、竖直管理器

QVBoxLayout

(二)文件对话框

1、打开文件

QFileDialog.getOpenFileName(父级窗口, 对话框标题, 目录, 文件过滤器)
file_path, filters = QFileDialog.getOprnFileName(example_window, '选择文件', './images', '图片(*.jpg *.png);; 文本文件(*.txt)')
file_path 选择的文件路径
filters 所使用的文件过滤器

2、打开文件夹

dir_path  = QFileDialog.getExistingDirectory(父级窗口, 对话框标题, 从哪个目录开始)
dir_path 你选择的文件夹路径

3、保存文件

使用场景:将文本或图片另存为的时候使用

实际上就是选择一个文件,将文本或者二进制数据写入到这个文件中

(三)信号和槽函数

当信号发出时,触发对应槽函数,也就是调用了

信号的类型有哪些

  • 内置信号:clicked/textChanged/doubleClicked等

  • 自定义信号:pyqtSingal()

(四)视图控件

  • 列表视图

  • 树形结构视图

  • 表格视图

列表视图

  • 如何创建:QListView()

二、课后复习

(一)完善:图片查看器

  • 运行截图

(二)扩展思考

  • 思考下信号和槽函数的使用,以及如何跨窗口调用,以及槽函数能不能带参数

  • 运行截图