QMessageBox 背景设置
来源:互联网 发布:淘宝一元拍在哪里 编辑:程序博客网 时间:2024/06/06 02:17
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“);
如下图:
如果我们设置的背景色是纯色,到这边即可,不会有什么问题。。。
===================================================================================
对于第2个问题:网上有提到,这里我就不多说了,这里直接复制过来,但是没有试过运行效果。
对于字的属性,我们可以使用html格式的字符串
QMessageBox::information(this, tr("Msg"), tr("<h1><i>Hello</i> <font color=red size=500>Qt!</font></h1>"));
对于按钮的属性:
QMessageBox msgBox;
msgBox.setText("Hello, Qt!");
msgBox.setStyleSheet("QPushButton { background-color: rgb(255, 85, 0); color: rgb(85, 255, 0); }");
msgBox.exec();
===================================================================================
对于第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%));");
效果如下:
所以我们要想办法设置字的背景色和按钮的背景色,因此我们要想办法取出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");
}
}
运行效果如下:
示例:
QMessageBox msgBox;
QPixmap iconImg(ICO_MAIN);
QIcon icon(iconImg);
msgBox.setWindowFlags(Qt::FramelessWindowHint);
msgBox.setWindowIcon(icon);
msgBox.setIcon(QMessageBox::Information);
msgBox.setWindowTitle(MSGBOX_TITLE);
QString tmp = "<font color=white>";
tmp += _Content;
tmp += "</font>";
msgBox.setText(tmp);
QPushButton *btn_sure = msgBox.addButton("确定", QMessageBox::AcceptRole);
btn_sure->setFlat(true);
btn_sure->setStyleSheet("QPushButton{color: rgb(255, 255, 255);}");
msgBox.setDefaultButton(btn_sure);
msgBox.setStyleSheet("background-color:qlineargradient(x1:0, y1:1, x2:0, y2:0,stop:0 rgba(255, 255, 255, 100%),stop: 1 rgba(111, 111, 111, 100%));");
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");
}
}
msgBox.exec();
END
- QMessageBox 背景设置
- QMessageBox 背景设置
- QT 中QMessageBox的用法中文按钮,设置背景,窗口LOGO
- QMessageBox 设置大小
- QMessageBox
- QMessageBox
- QMessageBox
- QMessageBox
- QMessageBox
- QMessageBox
- QMessageBox
- QMessageBox
- QMessageBox
- QMessageBox
- QMessageBox
- QMessageBox
- QMessageBox
- QMessageBox
- C++ const引用详解
- 9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路
- SQLServer行列转换 Pivot UnPivot
- Top500 Green500和Gragh500
- 动态修改程序自身代码的参考code
- QMessageBox 背景设置
- 在类前面加[Serializable]的作用
- java 读取 access数据库
- Windows7 下memcached memadmin的安装与使用
- UITableView生活使用
- 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。
- 开源 Android pdf 阅读器开发总结
- sqlite 数据库 对 BOOL型 数据的插入处理
- mapreduce文档倒排索引例程