qt creator调试窗口布局默认不持久化,需手动通过window→save perspective…保存为特定模式(如debug)的透视图,保存路径因系统而异,且不能通过restorestate()恢复。

调试窗口布局无法保存?默认不持久化
Qt Creator 的调试窗口布局(如“Locals and Expressions”、“Breakpoints”、“Debugger Log”等)默认关闭后不会自动保存。下次进入调试模式时,它会恢复成上一次手动调整后的状态——但这个“上一次”未必是你想要的,尤其当你频繁切换项目或重装 Qt Creator 时,布局大概率丢失。
用 Window → Save Perspective… 手动存布局
Qt Creator 把调试界面叫作“Perspective”(透视图),它支持显式保存和切换。这不是自动行为,必须主动操作:
- 确保已进入调试模式(按
F5或点击绿色三角形调试按钮) - 调整好所有调试面板的位置、大小、折叠/展开状态
- 菜单栏选择
Window → Save Perspective… - 输入名称(例如
Debug-MyLayout),勾选Set as default for this mode(可选)
保存后,下次进调试模式时,可通过 Window → Perspectives → Debug-MyLayout 快速还原。注意:该操作只影响当前 Qt Creator 实例的用户配置,不跨机器同步。
Perspective 文件实际存在哪?别手动改
保存的布局信息存在本地配置目录里,路径取决于系统:
- Windows:
%APPDATA%\QtProject\qtcreator\perspectives.xml - Linux:
~/.config/QtProject/qtcreator/perspectives.xml - macOS:
~/Library/Preferences/org.qt-project.qtcreator.plist(二进制格式,不建议编辑)
文件是 XML 或 plist 格式,记录了每个视图的位置、可见性、大小比例等。但直接编辑风险高:错一个标签就可能导致 Qt Creator 启动失败或透视图加载异常。除非你明确知道字段含义,否则不要碰它。
为什么 restoreState() 对 Qt Creator 本身无效?
有人尝试在自己写的 Qt 应用中用 QMainWindow::restoreState() 恢复布局,就想当然以为 Qt Creator 也走同一套机制——其实不是。Qt Creator 是基于 Qt Widgets + 自研插件架构的大型 IDE,它的窗口管理完全绕开了 saveState()/restoreState(),而是用 Perspective 系统+内部视图注册表来管理。所以你在自己项目里用的那套方法,对 Qt Creator 的界面布局毫无作用。
真正容易被忽略的是:Perspective 是“模式绑定”的。你存的 Debug-MyLayout 只在 Debug 模式下生效;如果切到 Edit 模式再保存一个,那是另一个独立布局。别指望一个布局通吃所有开发场景。











