无法理解如何以编程方式设置样式表以应用于使用 C++ 的 Qt Creator 4.1 (Qt 5.7) 中的多个(甚至全部)小部件。
例如,假设我有 3 个进度条小部件;我已经使用css明确地为每个设置了相同的样式表,如下所示:
ui->c1->setStyleSheet("QProgressBar {"
"background-color: #74c8ff;"
"color: #0a9dff;"
"border-style: outset;"
"border-width: 2px;"
"border-color: #74c8ff;"
"border-radius: 7px;"
"text-align: left; }"
"QProgressBar::chunk {"
"background-color: #010327; }");
ui->c2->setStyleSheet("QProgressBar {"
"background-color: #74c8ff;"
"color: #0a9dff;"
"border-style: outset;"
"border-width: 2px;"
"border-color: #74c8ff;"
"border-radius: 7px;"
"text-align: left; }"
"QProgressBar::chunk {"
"background-color: #010327; }");
ui->c3->setStyleSheet("QProgressBar {"
"background-color: #74c8ff;"
"color: #0a9dff;"
"border-style: outset;"
"border-width: 2px;"
"border-color: #74c8ff;"
"border-radius: 7px;"
"text-align: left; }"
"QProgressBar::chunk {"
"background-color: #010327; }");
我想使用Qt 样式表为我的小部件创建样式表并避免所有这些代码重复。
阅读文档后,语法如下:
QProgressBar
{
background: #74c8ff;
color: #0a9dff;
border-style: outset;
border-width: 2px;
border-color: #74c8ff;
border-radius: 7px;
text-align: left;
}
QProgressBar::chunk
{
background-color: #010327;
}
但是,显然您不能将setStylesheet
带有 css 的参数名称直接复制到上述语法中。
我也尝试过这样的事情
QProgressBar.setStyleSheet("QProgressBar {"
"background-color: #74c8ff;"
"color: #0a9dff;"
"border-style: outset;"
"border-width: 2px;"
"border-color: #74c8ff;"
"border-radius: 7px;"
"text-align: left; }"
"QProgressBar::chunk {"
"background-color: #010327; }");
以上都不起作用(未声明的标识符和语法错误)。
有人可以提供一个示例,说明如何使用上述参数定义单个样式表以应用于所有小部件?如果您可以指向一个资源(我找不到任何东西!),它解释了实现我的目标的可用参数,那就太好了)。
最后,如果为所有进度条创建了这样的样式表,我如何才能从拥有该样式表中排除一个进度条(或任何小部件)而使用不同的样式表?