自定义QWidget组件实现模态窗口功能

本文介绍了一种在不继承QDialog的情况下使自定义QWidget具备模态效果的方法。通过设置窗口标志和模态属性,可以在父窗口中使用自定义组件时阻止用户与父窗口的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简述

有些时候在使用自定义QWidget的时候在父窗口中出现的时候想要阻塞父窗口,但本身的QWidget没有提供相关的函数,博主又不想继承QDialog进行实现。可以采取下面的方法

实现

//在自定义的组件的构造函数当中加入
 setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
  setWindowModality(Qt::WindowModal);
  ......
  this->show();

这样就可以实现模态的效果