要显示消息框,我使用以下代码:
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。