You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Qt的Ui_MainWindow中使用自定义类并适配GUI Designer?

解决Qt Designer中使用自定义控件且避免手动修改ui文件被覆盖的问题

别担心手动改ui_mainwindow.h被覆盖的问题,Qt本身就提供了官方的解决办法——控件提升(Promotion),这才是正确的姿势,具体操作步骤如下:

  • 第一步:在Qt Designer中添加基础控件
    先把标准的QPlainTextEdit拖到你的主窗口界面上,调整好它的位置、大小等属性,就是你原本要替换成自定义类的那个控件。

  • 第二步:启动控件提升功能
    右键这个QPlainTextEdit控件,在弹出的菜单里选择 Promote to... 选项,打开提升设置对话框。

  • 第三步:配置自定义类信息
    在对话框里:

    • 在「Promoted Class Name」输入框中填写你的自定义类名:MyCustomQPlainTextEdit
    • 在「Header File」输入框中填写自定义类的头文件名(比如mycustomqplaintextedit.h,注意路径要正确,确保编译器能找到)
    • 点击「Add」按钮,把这个自定义类添加到提升列表里
    • 最后点击「Promote」按钮完成提升操作
  • 第四步:验证效果
    现在你去查看自动生成的ui_mainwindow.h文件,会发现原本的QPlainTextEdit *list;已经变成了MyCustomQPlainTextEdit *list;,而且以后你在Designer里修改界面并重新生成代码时,这个设置会被保留,再也不会被覆盖了!

额外提示:如果你的自定义控件需要在Qt Designer里直接看到可视化效果(比如自定义了外观),那你可能需要编写Qt Designer插件,但如果只是替换类、复用自定义的逻辑,上面的提升操作完全足够,不用折腾插件。

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:27:11