QT基础入门【QSS】继承、命名空间中的小部件、QObject 属性介绍
继承
在经典 CSS 中,当项目的字体和颜色没有显式设置时,它会自动从父级继承。但是在使用 Qt 样式表时,默认情况下,部件不会从其父部件自动继承其字体和颜色设置。
例如,考虑一个 QPushButton 在 QGroupBox 内部:
qApp->setStyleSheet("QGroupBox { color: red; }");
QPushButton 没有明确设置颜色。因此,它没有从其父级 QGroupBox 继承颜色,而是使用系统颜色。如果要在 QGroupBox 及其子部件上设置颜色,可以这样写:
qApp->setStyleSheet("QGroupBox, QGroupBox * { color: red; }");
相比之下,使用 QWidget::setFont() 和 QWidget::setPalette() 设置字体和调色板会传播到子部件。
如果您希望字体和调色板传播到子部件,可以设置 Qt::AA_UseStyleSheetPropagationInWidgetStyles 标志,像这样:
使用方法:
QCoreApplication::setAttribute(Qt::AA_UseStyleSheetPropagationInWidgetStyles, true);
当启用部件样式的字体和调色板传播时,通过 Qt 样式表进行的字体和调色板更改将表现得就像用户手动调用了所有样式表目标的 QWidget::setPalette() 和 QWidget::setFont() 方法一样。如果