Qt官方示例Application源码阅读

1. 添加资源文件

2. 命令行参数位置, 工作目录即为加载命令行所在目录

3. 菜单栏和工具栏 同一个动作,既出现在菜单,又出现在工具栏,还绑定键盘快捷键,一套代码三处复用

4. 在底部状态栏显示提示信息,这是正式软件的标配

5. QMainWindow有固定分区(菜单栏、工具栏区域、状态栏、dock 停靠区),中间业务区域必须调用setCentralWidget(xxx)放入核心控件

6. 菜单栏和工具栏添加方式

  • 菜单:menuBar()->addMenu(),不要自己 new QMenuBar,QMainWindow 自带 menuBar。
  • 工具栏:addToolBar(),会自动创建并加入窗口;可以创建多个工具栏。

7. 所有用户可见字符串使用tr(); 使用tr()全部字符串包裹,为国际化翻译预留支持

8. statusBar()->showMessage():临时提示消息,几秒后消失(普通提示);statusBar()->addPermanentWidget():永久常驻右侧控件(文件名、修改标记、版本号),示例里展示当前文件修改状态就是用这个机制。

每个QAction调用setStatusTip(tr("Create a new file"));鼠标悬浮菜单 / 工具栏按钮时,Qt 内部自动调用 statusBar ()->showMessage (),把 setStatusTip 设置的文字显示到底部状态栏

9. 用窗口标题栏标记:文件修改状态

10. - 关闭窗口前弹窗询问:文件是否要保存,防止丢失修改,桌面软件必备逻辑Qt

11. 保存窗口上次关闭时的位置、大小,下次打开恢复上次窗口状态

saveGeometry() 不保存工具栏、dock 窗口布局

如果要保存工具栏、悬浮面板布局,要用saveState() / restoreState(),同样可以存进 QSettings。

相关推荐
程序员良辰22 分钟前
服务器 JDK 环境变量配置:一键安装和手动配置有什么区别?
开发语言·python
奈斯先生Vector29 分钟前
本地图片识别怎么接入多模态 AI?用 Python API 理解 GPT-4o Vision 的真实工作流
开发语言·人工智能·windows·python·网络协议·http·aigc
OPEN-F33 分钟前
C++17新特性精讲:结构化绑定、if constexpr与实用类型
开发语言·c++
OPEN-F37 分钟前
C++并发编程:线程与互斥锁
开发语言·c++
俊昭喜喜里38 分钟前
C#中的decimal
开发语言·c#
catchadmin1 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.4.0 发布,新增短信服务能力
开发语言·php
小白学大数据1 小时前
API 调用错误处理实战:分层定位、有纪律地重试与可观测性设计
开发语言·网络·人工智能
萧瑟余晖2 小时前
Java深入解析篇十三之Java日志API(JUL)详解
java·开发语言
luj_17682 小时前
毒素驱动的生物自毁机制探析
服务器·c语言·开发语言·经验分享·算法