PyQt6 + SQLite 实战:做一个可持久化记账工具
这篇带你做一个小型记账工具,目标是把“界面 + 数据持久化”完整串起来。 1. 需求拆解最小可用版本需要: 输入金额、类型(收入/支出)、备注 保存到本地 SQLite 列表展示最近记录 支持删除一条记录 2. 数据库设计1234567CREATE TABLE IF NOT EXISTS records ( id INTEGER PRIMARY KEY AUTOINCREMENT, amount REAL NOT NULL, kind TEXT NOT NULL, note TEXT, created_at TEXT NOT NULL); 3. 数据层代码(db.py)123456789101112131415161718192021222324252627282930313233343536373839404142434445import sqlite3from datetime import datetimeDB_FILE = "ledger.db"def get_conn(): return sqlit...
PyQt6 实战:QThread + 进度条,彻底解决界面卡顿
很多人做 PyQt6 时都会遇到一个问题:点击“开始”后界面卡死。根因通常是耗时任务跑在主线程。本文用一个完整例子解决这个问题。 1. 为什么会卡顿PyQt6 的 GUI 运行在主线程,负责: 刷新界面 响应鼠标键盘 分发事件 如果主线程执行长循环、网络请求、文件扫描,界面就无法刷新。 2. 正确思路 耗时任务放到工作线程(QThread) 线程通过信号把进度发回主线程 主线程只负责更新界面 3. 完整示例:模拟 100 步任务123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657import sysimport timefrom PyQt6.QtCore import QThread, pyqtSignalfrom PyQt6.QtWidgets import ( QApplication, QWidget, QVBoxLayout, QPushButton, QLabel, QProgressBar)cl...
PyQt6 进阶:布局系统与 QMainWindow 实战
这篇文章专门讲 PyQt6 的“界面骨架能力”:布局系统 + QMainWindow。学完你就能搭出结构清晰、可维护的主程序窗口。 1. 为什么要学 QMainWindowQWidget 适合简单窗口,而 QMainWindow 原生支持: 菜单栏(MenuBar) 工具栏(ToolBar) 状态栏(StatusBar) 中央区域(Central Widget) 停靠面板(Dock Widget) 这正是桌面软件常见形态。 2. 最小主窗口代码123456789101112131415161718import sysfrom PyQt6.QtWidgets import QApplication, QMainWindow, QLabelclass MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("PyQt6 主窗口") self.resize(900, 600) center ...
PyQt6 入门教学:从 0 到 1 写出桌面 GUI
如果你会一点 Python,但还没做过桌面图形界面(GUI),这篇教程可以带你快速上手 PyQt6。这是一篇“能直接跑、能看见结果、能继续扩展”的实战入门。 1. PyQt6 是什么?为什么值得学PyQt6 是 Qt 在 Python 世界的绑定库,核心优势是: 跨平台(Windows / macOS / Linux) 组件丰富(按钮、表格、树、菜单、对话框、图形视图) 适合工具型产品、内部系统客户端、教学项目 对 Python 开发者非常友好 如果你正在做自动化脚本、数据处理脚本,PyQt6 可以把“命令行工具”升级成“可视化工具”。 2. 环境安装与项目结构建议建议使用 Python 3.10+。 1pip install pyqt6 验证: 1python -c "import PyQt6; print('PyQt6 OK')" 推荐项目结构: 123456my_pyqt6_app/├─ main.py├─ ui/├─ services/├─ assets/└─ requirements.txt 3. 第...



