CÃlimos 2024-03-07 15:13 采纳率: 64.4%
浏览 20
已结题

qt 新弹出的窗口为什么只显示控件,没有边框

初始界面里一个按键来弹出另一个界面,但是弹出的界面里只显示控件直接覆盖在原来界面上,没有最小化,关闭这些按键和边框,关也关不了

img

img

这个按键用的函数是

void qthalconmw::on_inforbutton_clicked()
{
    
      Form *form = new Form(this);

     form->show();
}

  • 写回答

5条回答 默认 最新

  • GISer Liu 2024-03-07 15:14
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    针对你描述的问题,可以按照以下步骤解决:

    1. 问题分析
    • 弹出的新窗口没有边框,控件直接覆盖在原来界面上。
    • 没有最小化、关闭等按钮。
    • 使用的函数是 on_inforbutton_clicked(),在该函数内创建新窗口并显示。
    1. 解决方案
    • 添加窗口边框 :确保新窗口有边框以及窗口管理按钮(如最小化、关闭按钮)。
    • 正确地关闭窗口 :确保能够通过关闭按钮关闭弹出的窗口。
    1. 修改代码
    • 在创建新窗口时,需要设置窗口的样式,以确保显示边框和窗口管理按钮。
      cppCopy code
      void qthalconmw::on_inforbutton_clicked() {
      Form *form = new Form(); // 不再传递 this,以避免新窗口以子窗口的形式显示在原窗口中
      form->setAttribute(Qt::WA_DeleteOnClose); // 在关闭时自动释放内存
      form->setWindowFlags(Qt::Window); // 设置窗口标志,确保显示窗口边框和窗口管理按钮
      form->show();
      }
      
    1. 解释修改原因
    • setWindowFlags(Qt::Window):此设置确保新窗口被视为独立窗口,具有窗口边框和管理按钮。
    • setAttribute(Qt::WA_DeleteOnClose):此设置确保在窗口关闭时释放与其关联的内存,避免内存泄漏。
    1. 总结
    • 通过设置窗口属性和标志,确保新窗口显示边框和窗口管理按钮,并能够正确关闭。
      请尝试以上修改,并确认问题是否得到解决。如果还有其他问题或疑问,请随时提出。

    如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

    用户答题指南

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 3月15日
  • 已采纳回答 3月7日
  • 创建了问题 3月7日

悬赏问题

  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音