QTreeWidgetItem sizeHint returning QSize(-1,-1)
-
What is exactly your purpose ?
-
So you would like the column to resize so your tooltip fits in ?
-
So, in fact, you would like to show the full content of a cell in a QToolTip ?
-
so what you want is probably to use
setData
on the widget item to set the Qt::ToolTipRole at the same value as main cell content. this will solve the " you would like to show the full content of a cell in a QToolTip" partfor the "only for cells that dont fit the entire text in the column" part you have to subclass QTreeWidget, reimplement
viewportEvent(QEvent *event)
so that if the event type is Qt::ToolTip you check if it fits usingsizeHintForIndex
if it does reject the event otherwise just call the base class implementation -
Correct me if I'm wrong but if I understand the situation correctly, you would like to resize the column to show a tooltip for something that doesn't fit in the cell within that cell. So in the end, the cell would be large enough to show the complete data, no ?
-
I tried indexAt(QCursor::pos())... The code I used is on the bottom. For the qDebug() I get this:
QVariant(Invalid) -1 100
So it looks like the same freakin problem with sizehint... I also tried this->currentIndex() instead of indexAt with the same results. Time to throw the computer out of the window!
bool TreeFileDir::viewportEvent(QEvent *event) { if (event->type() == QEvent::ToolTip) { qDebug() << indexAt(QCursor::pos()).data(Qt::DisplayRole) << sizeHintForIndex(indexAt(QCursor::pos())).width() << columnWidth(0); if (sizeHintForIndex(indexAt(QCursor::pos())).width() <= columnWidth(0)) return true; else return false; } QTreeWidget::viewportEvent(event); }