QMessageBox 背景设置
标签:
365qtit |
分类: QT |
1.怎样对QMessageBox 进行 背景设置?
2.背景设置成功后,又如何设置QMessageBox 上面文字的颜色和按钮的背景色?
3.如何设置文字的背景色?
==================================================================================
对于问题1:我们可以用setStyleSheet()实现
QMessageBox *msgBox = new
QMessageBox();
QPixmap
iconImg("UI/Image/warning.jpg");
QIcon
icon(iconImg);
msgBox->setWindowIcon(icon);
msgBox->setCaption(sCaption);
msgBox->setText(sText);
QPushButton
*btn_sure = msgBox->addButton("确定",
QMessageBox::AcceptRole);
QPushButton *bun_cancel =
msgBox->addButton("取消",
QMessageBox::RejectRole);
msgBox->setStyleSheet("background-color:white“);
如下图:
http://hi.csdn.net/attachment/201109/9/0_13155401134TvO.gif背景设置" />
如果我们设置的背景色是纯色,到这边即可,不会有什么问题。。。
===================================================================================
对于第2个问题:网上有提到,这里我就不多说了,这里直接复制过来,但是没有试过运行效果。
对于字的属性,我们可以使用html格式的字符串
QMessageBox::information(this, tr("Msg"), tr("
Hello Qt!
"));对于按钮的属性:
===================================================================================
对于第3个问题是我想说的:为什么字还有背景色?!
那好我们把背景色设置为渐变色,就可以看出问题了:
msgBox->setStyleSheet("background-color:
qlineargradient(x1: 0, y1: 1, x2: 0, y2: 0,stop: 0 rgba(255, 255,
255, 100%),stop: 1 rgba(10, 144, 255,
100%));");
效果如下:
http://hi.csdn.net/attachment/201109/9/0_1315539673Ooor.gif背景设置" />
所以我们要想办法设置字的背景色和按钮的背景色,因此我们要想办法取出QMessageBox 的孩子属性,把背景设置为透明即可
QObjectList objChildList =
msgBox->children();
for
(int i = 0; i < objChildList.size();
i++)
{
QObject *pObj=
objChildList.at(i);
if
(pObj->inherits("QWidget"))
{
QWidget *pWidget =
(QWidget*)pObj;
pWidget->setStyleSheet("background-color:
transparent");
}
}
运行效果如下:
http://hi.csdn.net/attachment/201109/9/0_1315540756KhxG.gif背景设置" />
哈哈哈,大功告成。。。。
END

加载中…