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。

相关推荐
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
伞伞悦读1 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车1 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁1 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
孙启超1 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int1 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
慧都小项1 天前
当边缘AI上产线:QtitanDocking 如何让工业 HMI 实现多视图协同
人工智能·qt·ui·边缘计算·qt6.3
CoderYanger1 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
伞伞悦读1 天前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json
CCCCCCCCharlie1 天前
Linux进程控制四大核心操作
linux·开发语言