统一设置全局字体后,日志列表的字体变小了,而其他部分字体正常,当不应用他们新增的样式代码时,字体是统一的?
问题确实出在 this->setStyleSheet(style);
这行代码。以下是详细解释和修复方案:
问题根源
-
样式表优先级机制
Qt 的样式表(QSS)会覆盖通过QApplication::setFont()
设置的全局字体。当您调用setStyleSheet()
时:-
如果样式表中没有显式定义字体,控件会重置为默认字体(通常是系统默认字体,而非您设置的全局字体)
-
如果样式表中定义了字体,则优先使用样式表的设置
-
-
日志列表的特殊性
QListWidget
的项(QListWidgetItem
)是独立的图形项,其字体需要通过样式表单独设置或显式继承,否则会使用默认值。
解决方案
在保持阴影效果的前提下,通过修改样式表显式定义字体。以下是修改后的代码:
void MainWidget::applyModernStyle() {// 保持原有阴影设置...QString style = R"(/* 全局字体强制继承 */QWidget {font: 17pt "HarmonyOS Sans SC"; /* 关键修改ÿ