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

Qt导航栏组件A05:多文档编辑器的「打开文件列表」侧栏

目录

    • 一、引言
    • 二、最终效果预览
    • 三、核心实现原理
      • 3.1 布局结构设计
      • 3.2 核心技术点
    • 四、代码实现详解
      • 4.1 项目结构
      • 4.2 导航组件的核心代码
      • 4.3 样式表设计
    • 五、总结
      • 5.1 核心要点回顾
      • 5.2 学习建议
    • 源码下载

系列编号:A-05
导航风格:可关闭项列表,带未保存标记(蓝色小圆点),悬停显示关闭按钮
适用场景:文本编辑器、脚本工具、日志查看器等多文档应用


一、引言

多文档应用的文件列表侧栏,比普通导航列表复杂得多:每一项不只是「点击切换」,还要在悬停时显示关闭按钮,文件被修改后要亮起未保存圆点,关闭时要弹出「是否保存」对话框。把这些逻辑全塞进MainWindow会让主窗口臃肿不堪。本文的解法是双层组件封装——FileListItemWidget负责单项的视觉状态,FileListWidget负责文件数据管理和列表协调,MainWindow只处理业务逻辑(读写文件、弹对话框),三层职责清晰分离。


二、最终效果预览

  • 左侧侧边栏,顶部「打开的文件」标题栏(含文件图标)
  • 每个文件项高度 40px:左侧蓝色小圆点(有未保存修改时亮起)、文件名、右侧关闭按钮(仅悬停时显示)
  • 点击文件项切换右侧编辑区内容,选中项蓝底高亮
  • 编辑内容后文件名旁自动出现蓝点,窗口标题加
http://www.jsqmd.com/news/499624/

相关文章:

  • 计算机毕设 java 门诊管理系统 Java+SpringBoot 门诊医疗管理平台 Web 版医院门诊诊疗管理系统
  • 基于能量分配的光伏混合储能系统仿真模型 ①光伏:采用mppt控制实现最大功率跟踪 ②蓄电池与超...
  • Vue3 按钮切换示例(启动 / 关闭互斥显示)
  • 动态规划_最长递增子序列_C++
  • 计算机毕设 java 课程教学平台设计与实现 Java+SpringBoot 课程教学管理平台 Web 版在线课程学习管理系统
  • STL:string
  • AI智能水库图像识别数据集 水面漂浮物识别 水面分割识别 河道护栏分割数据集 YOLO格式数据集第10573期
  • 泰思特电子分享_EMC测试电流探头选型差异性及影响因素探讨
  • SPI子系统源码剖析--(2)Spi_Master驱动框架
  • TSMC 28nm工艺库,可仿真-文档齐全
  • Android Studio 安装教程(Windows 超详细图文版)
  • 洛谷:P5744 【深基7.习9】培训
  • 计算机毕设 java 口腔牙科诊所管理系统 Java+SpringBoot 口腔牙科诊疗管理平台 Web 版牙科门诊就医管理系统
  • 16、【Agent】【OpenCode】源码构建(Bun介绍)
  • python-web自动化-selenium(1)
  • OpenClaw常见4大赋能工作场景
  • Python asyncio 调度模型的可视化分析
  • 2026-03-17 每日作战任务:RAG 语料高效切分(Text Chunking)与处理
  • JAVA数据结构 DAY8-堆
  • 大模型的那点事儿
  • 华为OD机试真题精讲:数据单元的变化替换(Python/Java/C++多语言实现)
  • APF 仿真(有源电力滤波器)研究,双PI控制 电压外环 电流内环,SVPWM ip-iq 电...
  • BUUCTF——[GXYCTF2019]禁止套娃解题记录
  • SDPose-Wholebody在Typora中的技术文档自动化
  • 3人团队干出10人活?实测这款AI短剧平台,发现“人效”还能这么卷
  • 努力学习了一辈子,突然发现学习没什么用了
  • Cesium快速入门到精通系列教程二十三:综合
  • Python之三大基本库——Pandas
  • python-flask高校失物招领平台38tp1
  • 基于S7-200 PLC和MCGS的电机转速闭环速度控制系统:带解释的梯形图程序、接线图原理图...