Стиль текста выбранного элемента в QComboBox или QListWidget? - PullRequest
0 голосов
/ 19 октября 2018

Можно ли с помощью таблиц стилей изменить внешний вид текста, содержащегося в выбранном элементе, таком как 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 такая же).

1 Ответ

0 голосов
/ 29 октября 2018

Единственный способ, который я нашел, это подключиться к этому СИГНАЛУ http://doc.qt.io/archives/qt-4.8/qlistwidget.html#currentItemChanged:

currentItemChanged(QListWidgetItem*,QListWidgetItem*)

, затем в слоте переключить шрифт во время выполнения:

_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);
}
...