Я хочу отобразить всплывающую подсказку для QTreeWidgetItem
, которая зависала. Тем не менее, получение всплывающей подсказки не очень быстрый процесс в моем случае, поэтому я не хочу называть setTooltip()
для каждого отдельного элемента. Я хочу делать это по требованию, на каком-то событии или сигнале. Какой самый простой способ сделать это?Отображение всплывающей подсказки для QTreeWidgetItem, когда он зависает без вызова setTooltip() для каждого элемента
ответ
Лучшее решение я нашел подкласс QTreeWidgetItem
, переопределить virtual QVariant data(int column, int role) const;
и вернуть подсказку для этого элемента, когда data
вызывается для Qt::ToolTipRole
.
Я думаю, что вам будет легче достичь желаемого, если вы перейдете к шаблону QTreeView/Model.
QAbstractItemModel играет роль для всплывающих подсказок: Qt :: ToolTipRole
Вы можете создать подкласс Модель переопределять метод
QVariant QAbstractItemModel::data (const QModelIndex & index, int role = Qt::DisplayRole) const [pure virtual
.
Итак, когда получает Qt :: TooltipRole, он вычисляет/восстанавливается из внутреннего кеша.
Обратите внимание, что, поскольку QTreeWidget наследуется от QTreeView, вы можете назначить свою пользовательскую модель. Но это было бы смешано с яблоками и апельсинами. – Trompa
Я никогда не использовал 'QTreeView', он кажется слишком сложным без уважительной причины (при условии, что мне никогда не приходилось делать что-то, что невозможно с Widget до сих пор). Нет ли способа добиться этого с помощью 'QTreeWidget'? –
Можно ли переопределить 'QtreeWidget :: mouseEvent()', чтобы получить 'QHoverEvent', вычислить, какой элемент мышки окончен, и отобразить всплывающую подсказку? –
lol, так, в основном, что я сказал, но не меняя модель/представление. Извините, dunno, как не понял, что это должен быть метод данных в элементах виджетов: S – Trompa
@Trompa: Да, и без модели вообще :) –
В любом случае, вы должны попробовать;). С QStandardItemModel вы будете использовать QStandardItems очень похоже на WidgetItems, и вы получите развязку. – Trompa