当前位置: 首页 > news >正文

PySide(PyQt),记录最后一次访问文件的路径

1、在同目录下用文本编辑器创建JSON文件,命名为setting.json,并输入以下内容后保存:

{
    "setting": {
        "last_file": [
            ""
        ]
    }
}

2、应用脚本:

import json
import sysfrom PySide6.QtCore import QObject
from PySide6.QtWidgets import QApplication, QMainWindow, QFileDialog, QPushButton# 读取JSON文件并分配参数
def read_json():with open('setting.json', 'r', encoding='utf-8') as file_json:ui.json_data = json.load(file_json)ui.settings = ui.json_data['setting']  # 项目参数的定义ui.last_file = ui.settings['last_file']  # 最后一次读取的文件# 初始化
def start_todo():read_json()# 退出前
def before_quit():with open('setting.json', 'w') as file:  # 保存json文件json.dump(ui.json_data, file, indent=4)# 信号和槽
def signal_slot():def mainWindow_button_clicked():file_path, _ = QFileDialog.getOpenFileName(None, '请选择文件', ui.last_file[0],"Image Files(*.*)")  # 打开文件选择框# directory_path = QFileDialog.getExistingDirectory(None, "选择项目路径")  # 如果是记录路径用这个if file_path:ui.last_file[0] = file_path  # 回存文件路径mainWindow.button.clicked.connect(mainWindow_button_clicked)class MainWindow(QMainWindow):def __init__(self):super().__init__()# 创建一个按钮self.button = QPushButton('OPEN FILE', self)if __name__ == '__main__':app = QApplication(sys.argv)# #######################项目级别的定义###################################class UI(QObject):  # 将项目定义为QObject,用来管理项目级别的信号和变量# ###########__init__###############def __init__(self):super().__init__()# ########################本项目的实例化###################################ui = UI()  # 项目实例化# 创建主窗口对象mainWindow = MainWindow()# 显示主窗口mainWindow.show()start_todo()  # 系统初始化signal_slot()  # 信号和槽app.aboutToQuit.connect(before_quit)  # 退出系统之前的操作sys.exit(app.exec())

 

http://www.lryc.cn/news/393482.html

相关文章:

  • wordpress企业网站模板免费下载
  • [leetcode hot 150]第一百一十七题,填充每个节点的下一个右侧节点
  • Docker 入门篇(十 一)-- 网络配置总结
  • 【Android面试八股文】Android 有哪些存储数据的方式?
  • 3. train_encoder_decoder.py
  • Hyper-V克隆虚拟机教程分享!
  • QDockWidget类详解
  • vue3.0(十六)axios详解以及完整封装方法
  • Python用于处理 DNS 查询库之Dnspython 使用详解
  • Django ORM 中过滤 JSON 数据
  • 深入探索C语言中的结构体:定义、特性与应用
  • EDEM-FLUENT耦合报错几大原因总结(持续更新)
  • ctfshow sql注入 web234--web241
  • Python的招聘数据分析与可视化管理系统-计算机毕业设计源码55218
  • 使用ChatGPT写学术论文的技巧和最佳实践指南
  • 多模态图像引导手术导航进展
  • 小程序 全局数据共享 getApp()
  • 第一次面试的经历(java开发实习生)
  • GitHub Copilot API
  • CobaltStrike的内网安全
  • Linux之进程控制(下)
  • Mac搭建anaconda环境并安装深度学习库
  • Linux:文件系统与日志分析
  • 迈阿密色主题学科 HTML5静态导航源码
  • Qt 基础组件速学 鼠标和键盘事件
  • 【踩坑】解决undetected-chromedriver报错cannot connect to-chrome
  • PyCharm 2024.1 版本更新亮点:智能编程,高效协作
  • 网络安全设备——蜜罐
  • Java与Selenium配置及常见报错解决方法
  • 最新扣子(Coze)实战案例:使用图像流做超分,模糊图片秒变清晰,完全免费教程