儿童的 QTreeWidget 样式表颜色
QTreeWidget Stylesheet Color for Childs
系统:LinuxMint,来自 Repo 的 QT Creator -> QT 版本 5.2,C++)
我创建了一个 Customwidget,我在 QTreeView 中使用它
OwnItem *OI = new OwnItem;
QTreeWidgetItem *itemN = new QTreeWidgetItem();
ui->ProjektListe->addTopLevelItem(itemN);
ui->ProjektListe->setItemWidget(itemN, 0, OI);
我想要的是为 QTreeWidget 设置一个样式表,包括正常模式和选定模式下的背景颜色和文本颜色。
到目前为止:
QTreeWidget::item{
background-color: rgb(255, 255, 255);
color: rgb(255, 255, 0);
}
QTreeWidget::item:selected{
background-color: #157efb;
color: rgb(255, 0, 0);
}
问题是背景颜色有效,颜色 (TextColor) 无效(在两种情况下)。我知道当子样式表单独设置时,这将不起作用,但小部件本身及其所有子项(一些标签和按钮)都是 "Sylesheet" 免费的。
TextColor 工作的唯一情况 "color: .... " 就是这种情况
QWidget{
color: rgb(85, 0, 0);
}
但这不适用于 "selected" 状态
我的 anser 在 C++ 中,不适用于 CSS,但你可以创建一个 QPalette,然后使用函数 void QPalette::setColor ( ColorGroup group, ColorRole role, const QColor & color )
设置你想要的值,所以对你来说,我应该像这样:
QTreeWidget tree(a);
QPalette palette;
palette.setColor(QPalette::Window, QColor(255, 255, 255));
palette.setColor(QPalette::WindowText, QColor(255, 255, 0));
palette.setColor(QPalette::Highlight, QColor(255, 0, 0))
palette.setColor(QPalette::HighlightedText, QColor(0, 0, 255));
QList<QTreeWidgetItem> treeItems = tree.findChildren<QTreeWidgetItem*>();
foreach (QTreeWidgetItem *w : treeItems) {
w.setPalette(palette);
}
findChildren 将 return 一个包含所有子项的列表到小部件,然后您可以设置调色板。要查找颜色组列表,您可以访问此处:http://qt-project.org/doc/qt-4.8/qpalette.html#setColor then click on the ColorGroup type in the parameter then you will be are here: http://qt-project.org/doc/qt-4.8/qpalette.html#ColorGroup-enum
祝你好运!
系统:LinuxMint,来自 Repo 的 QT Creator -> QT 版本 5.2,C++)
我创建了一个 Customwidget,我在 QTreeView 中使用它
OwnItem *OI = new OwnItem;
QTreeWidgetItem *itemN = new QTreeWidgetItem();
ui->ProjektListe->addTopLevelItem(itemN);
ui->ProjektListe->setItemWidget(itemN, 0, OI);
我想要的是为 QTreeWidget 设置一个样式表,包括正常模式和选定模式下的背景颜色和文本颜色。
到目前为止:
QTreeWidget::item{
background-color: rgb(255, 255, 255);
color: rgb(255, 255, 0);
}
QTreeWidget::item:selected{
background-color: #157efb;
color: rgb(255, 0, 0);
}
问题是背景颜色有效,颜色 (TextColor) 无效(在两种情况下)。我知道当子样式表单独设置时,这将不起作用,但小部件本身及其所有子项(一些标签和按钮)都是 "Sylesheet" 免费的。
TextColor 工作的唯一情况 "color: .... " 就是这种情况
QWidget{
color: rgb(85, 0, 0);
}
但这不适用于 "selected" 状态
我的 anser 在 C++ 中,不适用于 CSS,但你可以创建一个 QPalette,然后使用函数 void QPalette::setColor ( ColorGroup group, ColorRole role, const QColor & color )
设置你想要的值,所以对你来说,我应该像这样:
QTreeWidget tree(a);
QPalette palette;
palette.setColor(QPalette::Window, QColor(255, 255, 255));
palette.setColor(QPalette::WindowText, QColor(255, 255, 0));
palette.setColor(QPalette::Highlight, QColor(255, 0, 0))
palette.setColor(QPalette::HighlightedText, QColor(0, 0, 255));
QList<QTreeWidgetItem> treeItems = tree.findChildren<QTreeWidgetItem*>();
foreach (QTreeWidgetItem *w : treeItems) {
w.setPalette(palette);
}
findChildren 将 return 一个包含所有子项的列表到小部件,然后您可以设置调色板。要查找颜色组列表,您可以访问此处:http://qt-project.org/doc/qt-4.8/qpalette.html#setColor then click on the ColorGroup type in the parameter then you will be are here: http://qt-project.org/doc/qt-4.8/qpalette.html#ColorGroup-enum
祝你好运!