Qt 一个项目的多种类型的样式(QLabel、QPushbutton,...)
Qt Multiple Types of Styles for an item (QLabel, QPushbutton, ...)
- 我正在使用 Qt Creator 3.6.1
设计 UI
- 我正在使用 Qt 设计器窗体。
- 我有一个包含 20 个 QLabel 的 QWidget。
- 我希望这些 QLabel 中的 10 个具有红色背景颜色
其他 10 个具有蓝色背景色。
- 我想为此目的使用 css。
我发现您可以为父小部件 css 中的所有 QLabel 设置样式,这将为所有标签设置样式。
QLabel
{
background-color: red
}
但是在我的例子中,我想要两种 类 样式。
有没有一种方法可以不单独设置其余 10 个蓝色标签的样式?
我知道我可以按名称设置元素的样式,但这需要付出巨大的努力。
如果您想使用 CSS class 您必须为您的 QLabel 设置一个 class 名称:
QLabel* redLabel = new QLabel("red label");
QLabel* blueLabel = new QLabel("blue label");
redLabel->setProperty("class","my-1st-class");
blueLabel->setProperty("class","my-2nd-class");
然后在您的 CSS 文件中使用您的 class 名称:
.my-1st-class{
background-color: red;
}
.my-2nd-class{
background-color: blue;
}
- 我正在使用 Qt Creator 3.6.1 设计 UI
- 我正在使用 Qt 设计器窗体。
- 我有一个包含 20 个 QLabel 的 QWidget。
- 我希望这些 QLabel 中的 10 个具有红色背景颜色
其他 10 个具有蓝色背景色。 - 我想为此目的使用 css。
我发现您可以为父小部件 css 中的所有 QLabel 设置样式,这将为所有标签设置样式。
QLabel
{
background-color: red
}
但是在我的例子中,我想要两种 类 样式。 有没有一种方法可以不单独设置其余 10 个蓝色标签的样式?
我知道我可以按名称设置元素的样式,但这需要付出巨大的努力。
如果您想使用 CSS class 您必须为您的 QLabel 设置一个 class 名称:
QLabel* redLabel = new QLabel("red label");
QLabel* blueLabel = new QLabel("blue label");
redLabel->setProperty("class","my-1st-class");
blueLabel->setProperty("class","my-2nd-class");
然后在您的 CSS 文件中使用您的 class 名称:
.my-1st-class{
background-color: red;
}
.my-2nd-class{
background-color: blue;
}