一.查询Qt手册发现,QMessageBox有

1.setBaseSize(int , int )/setBaseSize(const QSize &)

2.setFixedSize(int , int )/setFixedSize(const QSize &)

 msgBox=QMessageBox()
 msgBox.setBaseSize(200,200)
 #msgBox.setBaseSize(QSize(200,200))
 msgBox.setFixedSize(200,200)
 #msgBox.setFixedSize(QSize(200,200))

然而并没有效果…

二.运用Qt css

msgBox=QMessageBox()
 msgBox.setStyleSheet("QLabel{"
                      "min-width: 200px;"
                      "min-height: 100px; "
                      "}")

发现有效果,但不知上面的函数为何不可用,望大佬指点迷津.

      QMessageBox的功能很强大、实用及方便,相信用过Qt的开发者都用过它,但它有一个让人不友好的地方,就是不能设置窗口的大小,尤其对自定义界面的窗口风格时,不得不考虑这个不便。这个问题在自己参与开发thinkvd时就意识到,由于当时自己对Qt的认识有限,几次偿试解决都没有结果,当时主要原因在于它引用了几个类的私有成员(如QLabel的)。     现在把实现的思路大概说一下:  1。重新实现QMessageBox->ImMessageBox(直接COPY QMessageBox),改名,再带 //============================================ //Brief: 继承QMessageBox实现自定义窗口大小 //Email: binb... public: MyMessageBox(Icon icon,const QString & title, const QString & text, StandardButtons buttons = NoButton, QWidget * parent):QMessageBox(icon,tit. void NetWorkInfo::detail(){ QString det=""; QList<QNetworkInterface> list = QNetworkInterface::allInterfaces(); for(int i = 0;i<list.count();i++){ QNetworkInterface interface=list.at(i 需求        对QMessageBox进行尺寸定制。截图,定制前截图,定制后     原因        原因:QMessageBox::showEvent() 强制将其大小改变成了QT认为比较合适的大小。        要改变它的大小可使用下面这种方法:class MyMessageBox : public QMessageBox { ... protected: void sho... QMessageBox message(QMessageBox::Warning,"Show Qt"," size='26' color='red'>Do you want to show Qt dialog?", QMessageBox::Yes | QMessageBox::No, NULL); //ok.setFont(font); //ok.setPen(Qt::red