如何更改QMessageBox标签的字体颜色?

4

What I mean

QMessageBox::question, QMessageBox::warning, QMessageBox::critical, QMessageBox::Information { /* Base Text Size & Color */
font-size:12px;
color:#ffffff;
}

如果我尝试使用QmessageBox.QLabel,它会更改所有窗体/表单的字体

那么如果我对所有内容使用全局设置,如何添加背景呢?

QDialog {
border-image: url(':/images/image') 0 0 0 0 stretch stretch;
}

已经设置好了,但如何只为这些QMessageBoxes进行设置。

我理解这一点,但还有另一个问题,我要将其添加到背景中。

QMessageBox QLabel {
background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0.5 rgba(0, 0, 0, 102));
border:0;
border-radius:6px;
font-size:10px;
font-weight:bold;
padding-left:5px;
padding-right:5px;
padding-top:5px;
padding-bottom:5px; 

但它添加了一个图标到 ,如何解决?

在这里输入图片描述


抱歉,您究竟想做什么?您想为所有QMessageBox添加背景吗?还是为QDialog添加背景? - Ph03n1x
1
我尝试更改QMessageBox(对话框)的字体颜色,并为它们添加自定义背景。如果我为所有QDialo's使用全局图像,它也会添加到QMessageBoxes对话框中。对于QLabel的字体也是如此。 - tseries
1
问题是-如果全局设置黑色图像-会使得QmessageBox中的黑色字体无法阅读 critical,Info等... 对于所有的表单变更字体很简单,但是如何通过qss为这些qmessageboxes设置样式呢? - tseries
3个回答

4

这个我懂,但是我还有另一个问题,就是我添加了背景QMessageBox QLabel { background-color: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0.5 rgba(0, 0, 0, 102)); border:0; border-radius:6px; font-size:10px; font-weight:bold; padding-left:5px; padding-right:5px; padding-top:5px; padding-bottom:5px; }但是它也添加到图标上了,如何解决? - tseries
你想在哪里添加图标?你想在消息框中添加图片吗? - Ph03n1x
为此,您应该使用QMessageBox对象的 "setIconPixmap(const QPixmap &pixmap)" 函数。即:messageBoxInstance.setIconPixmap(QPixMap(":/pictures/yourPic.jpg")); - Ph03n1x
如何设置图标我知道。 - tseries
你的图片背景不是比较暗吗?或许你可以尝试使用 Photoshop,将图片的其余部分设置为透明。 - Ph03n1x

2
您可以使用作为QMessageBox参数传递的字符串中的标签设置颜色:
QMessageBox::question(this, "Question", "<FONT COLOR='#ff0000'>Are you ready?</FONT>",
                                  QMessageBox::Yes|QMessageBox::No);

Question messageBox with font color red



1
setStyleSheet("QMessageBox{background: rgb(255,0,0);  border: none;font-family: Arial; font-style: normal;  font-size: 15pt; color: #000000 ; }");

结果enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接