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。

相关推荐
1024奇点9 小时前
【仓颉语言入门 · 第二篇 第 22 课】
开发语言·ide·开源
Warren2Lynch10 小时前
C4 模型详解:利用 Visual Paradigm 可视化软件架构的综合指南
开发语言·uml
Knight_AL10 小时前
Java 文件下载时文件名中的 `#` 被转换成 `%23`?一次 URL 编码与解码问题排查
java·开发语言
FRing0311 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
by2099912 小时前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
砚底藏山河12 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
IT召唤狮12 小时前
开源企业级零信任项目Pangolin,零信任能挡住PHP核弹漏洞吗?
开发语言·开源·php
知已难寻12 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
Rover Ramble12 小时前
C++ 用互斥锁实现读写锁
开发语言·c++
码流子13 小时前
移动收费怎么做?手持终端+App+收费中心的架构实践
java·开发语言·架构