#include<QMessageBox>
#include<QLabel>
class MyMessageBox:public QMessageBox
{
public:
MyMessageBox(Icon icon,const QString & title, const QString & text, StandardButtons buttons = NoButton, QWidget * parent):QMessageBox(icon,title,text,buttons,parent){}
static StandardButton warning(QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok)//仿写warning函数
{
MyMessageBox msgBox(Warning,title,text,buttons);
if(msgBox.exec() == -1)
return QMessageBox::Cancel;
return msgBox.StandardButton(msgBox.clickedButton());
}
protected:
void showEvent(QShowEvent* event) //通过改变内部label大小来改变默认窗体大小
{
do{
//提示文字的label
QLabel*textlabel = findChild<QLabel*>("qt_msgbox_label");
if(!textlabel) break;
int w = textlabel->width();
int h = textlabel->height();
textlabel->setMinimumSize(QSize(w+10,h*2));//宽+10 高变2倍
QLabel*iconlabel = findChild<QLabel*>("qt_msgboxex_icon_label");
if(!iconlabel)break;
iconlabel->setMinimumHeight(h*2);//高度*2
}while(0);
QMessageBox::showEvent(event);
}
};
//调用
int main()
{
MyMessageBox::waring(NULL,"提示","内容",QMessageBox::Ok);
return 0;
}
QMessageBox设置窗体大小
最新推荐文章于 2024-07-26 16:27:36 发布