当使用静态方法QMessageBox::information()时,删除QMessageBox的标题栏



要显示消息框,我使用以下代码:

int ret = QMessageBox::question(this,"Title","Stupid code",QMessageBox::Yes | QMessageBox::No);

一切工作如预期,但现在,我想删除消息框的标题栏。我怎样才能做到这一点呢?

我不想用:

QMessageBox msgBox("Title" , "Stupid code", QMessageBox::Question, QMessageBox::Yes | QMessageBox::No, this, Qt::FramelessWindowHint);
msgBox.exec();

我建议您通过创建自己的XMessageBox类和静态成员函数question()来创建包装器函数,接受与QMessageBox::question()相同的参数。在包装器函数中,使用给函数的参数和Qt::FramelessWindowHint标志创建一个QMessageBox对象,调用exec()并传递返回值。这样,您只需要搜索并将代码中出现的所有QMessageBox::question替换为XMessageBox::question

如果你想要更多的灵活性,你可以让你的question()函数接受Qt::WindowFlags类型的额外参数,并将其传递给QMessageBox构造函数。

唯一可以让你在不改变任何代码的情况下做你想做的事情的选择是改变Qt代码(qmessagebox.cpp)并重新编译Qt。

相关内容

  • 没有找到相关文章

最新更新