要显示消息框,我使用以下代码:
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();
答案 0 :(得分:1)
我建议您通过使用静态成员函数XMessageBox
创建自己的question()
类来创建包装函数,并接受与QMessageBox::question()
相同的参数。在你的包装函数中,创建一个QMessageBox
对象,其中包含给你的函数的参数,另外还有Qt::FramelessWindowHint
标志,调用exec()
并传递返回值。这样,您只需在代码中搜索并替换所有QMessageBox::question
XMessageBox::question
{/ p}}。
如果您想要更灵活,可以让question()
函数接受Qt::WindowFlags
类型的附加参数,并将其传递给QMessageBox
构造函数。
唯一可以让你按照自己的意愿而不改变任何代码的方法是更改Qt代码(qmessagebox.cpp)并重新编译Qt。