View Full Version : QTreeWidgetItem with tooltip+pixmap
Zed
20th January 2011, 14:08
Hi to all, I'm using the following code to setup a tooltip text for a TreeWidgetItem:
myTreeWidgetItem->setToolTip(myColumn, "My ToolTip text");
I would like to set a QPixmap instead of
"My ToolTip text" , but i can't.
I could use a rich text to load image from resources, for example:
<img src=":/images/myFileImage.png">
but i would mix the code above with a QPixmap dynamically generated.
Do I have to use QMimeData?
Any suggestions?
Many Regards.
Zed
21st January 2011, 16:40
No answer?
Ok, i will share my solution.
In MyTreeWidget class:
connect(this, SIGNAL(itemEntered(QTreeWidgetItem*,int)), this, SLOT(onItemEntered(QTreeWidgetItem*, int)));
void MyTreeWidget::onItemEntered(QTreeWidgetItem* nItem, int nColumn)
{
MyTreeWidgetItem* itemCasted = static_cast<MyTreeWidgetItem*>(nItem);
static MyTreeWidgetItem* currentItem = 0;
if (currentItem && (currentItem != itemCasted ))
{
currentItem->endTracking();
}
currentItem = itemCasted;
currentItem->beginTracking();
}
in MyTreeWidgetItemclass:
void MyTreeWidgetItem::endTracking()
{
dynamicLabel.hide();
}
void MyTreeWidgetItem::beginTracking()
{
if (dynamicLabel.isHidden())
{
dynamicLabel.show();
currentTime = 0;
maxTime = 1000;
advance();
}
else
{
currentTime = 0;
}
}
void MyTreeWidgetItem::advance()
{
if (currentTime < maxTime)
{
currentTime += 25;
QPoint newPos = QCursor::pos();
newPos.setX(newPos.x() + 10);
dynamicLabel.move(newPos);
QTimer::singleShot(25, this, SLOT(advance()));
}
else
{
endTracking();
}
}
of course, we need to extends QObject
class MyTreeWidgetItem : public QObject, public QTreeWidgetItem
{
Q_OBJECT
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.