QComboBox 或 QListWidget 中所选元素的样式文本?

Style text of selected element in QComboBox or QListWidget?

是否可以使用样式表更改所选项目(例如 QComboBox 或 QListWidget)中包含的文本的外观? 我试过使用 QListWidget,但我可以更改除文本属性之外的所有内容。

此示例更改了文本颜色但未更改其字体:

QListWidget m_pListMain = new QListWidget(this);
m_pListMain->setStyleSheet("QListWidget:item:selected{"
                               "color: red;"
                               "font: bold;"
                               "}");

这反而能正常工作:

QListWidget m_pListMain = new QListWidget(this);
m_pListMain->setStyleSheet("QListWidget{"
                               "color: red;"
                               "font: bold;"
                               "}");

但显然它会更改所有项目,而不仅仅是选定的项目。 我错过了什么? (我假设问题与 QComboBox 相同)。

我找到的唯一方法是连接到此 SIGNAL http://doc.qt.io/archives/qt-4.8/qlistwidget.html#currentItemChanged :

currentItemChanged(QListWidgetItem*,QListWidgetItem*)

然后,在SLOT中,在运行时切换字体:

_HandleListItemChanged(QListWidgetItem *p_pItemCurrent, QListWidgetItem *p_pItemPrevious)
{
// Switch fonts: only selected must be bold
    QFont l_Font = p_pItemCurrent->font();
    l_Font.setBold(true);
    p_pItemCurrent->setFont(l_Font);

    l_Font = p_pItemPrevious->font();
    l_Font.setBold(false);
    p_pItemPrevious->setFont(l_Font);
}