1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > qt自定义窗口添加父窗口后 显示不出来

qt自定义窗口添加父窗口后 显示不出来

时间:2022-01-18 17:56:22

相关推荐

qt自定义窗口添加父窗口后 显示不出来

提要

继承于QDialog的类,在被其它类创建的改对象时,没设置父窗口前显示正常,设置了父窗口后显示不出来。

自定义窗口的构造函数

configBtnNameDialog::configBtnNameDialog(QWidget *parent) :QDialog(parent),ui(new Ui::configBtnNameDialog){ui->setupUi(this);setWindowFlags(Qt::FramelessWindowHint | Qt::WindowCloseButtonHint);setAttribute(Qt::WA_TranslucentBackground);//设置背景透明setWindowTitle("配置文本");}

创建该自定义对话框的语句,没有`指出父窗口,窗口显示正常

m_configName = new configBtnNameDialog;m_configName->show();

创建该自定义对话框的语句,指出父窗口,窗口显示不出来

m_configName = new configBtnNameDialog(this);//指定this为父窗口,该窗口变显示不出来m_configName->show();

解决方法

由于自定义该窗口的时候,调用了设置窗口标志的函数,setWindowFlags(Qt::FramelessWindowHint | Qt::WindowCloseButtonHint);所以添加了父窗口后显示不出来,此时需要添加一个标志this->windowFlags()。将自定义窗口的构造函数中设置标志那句改为以下语句。

setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint | Qt::WindowCloseButtonHint);

窗口就可以正常显示了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。