1

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

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();
4

1 回答 1

1

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

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

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

于 2013-05-17T22:21:00.703 回答