为 QTreeWidget 中的元素设置带有字体大小的样式表

Set StyleSheet with Font size for elements in QTreeWidget

我尝试为 header 和树形小部件的内容设置新的字体大小。

这里的问题是:我无法直接为内容设置字体大小,因为在我设置的那一刻,内容还没有出现。所以我可以设置 StyleSheet,所以当内容出现时,它遵循 StyleSheet。这是我的代码:

    int modifier = 2;
    /* Set font size for headers */
    QFont f = ui.treeWidget->headerItem()->font(0);
    if (f.pointSize() == 10)
        f.setPointSize(f.pointSize() - 1);
    else
        f.setPointSize(f.pointSize() - modifier);
    ui.treeWidget->headerItem()->setFont(0, f);
    ui.treeWidget->headerItem()->setFont(1, f);
    ui.treeWidget->headerItem()->setFont(2, f);

    /* Set font size for content */
    ui.treeWidget->setStyleSheet("{font-size: " + QString::number(f.pointSize()) + "}");

这是结果,header字号变了,内容没变。我哪里错了,或者您有其他解决方案吗?

理论上您可以调整 QTreeWidget::item 样式表子控件中的内容,但在这种情况下 Qt 忽略了 font-size,我不知道为什么。

或者您可以通过以下方式调整内容区域的字体大小:

ui.treeWidget->setFont(f);

以下对我有效:

ui->treeWidget->setStyleSheet("QTreeWidget { font-size: " + QString::number(f.pointSize()) + "pt; }");

请注意我添加了 QTreeWidgetpt;