How to store/get pointer on QTreeWidgetItem data?
I need to store/get pointer to raw data
here my test code
Code:
#include <QtCore>
#include <QtGui>
#include "qttest.h"
#include <string.h>
#include <stdio.h>
qttest
::qttest(QWidget *parent, Qt
::WFlags flags
){
ui.setupUi(this);
ui.
treeWidget->setHeaderLabels
(QStringList() <<
"#" <<
"Name" <<
"Count" );
for(int i=0;i<50;i++){
item
->setText
(0,
QString::number(i
));
item->setText(1,tr("Item %1").arg(i) );
//item->setToolTip(1,"<b>hello's <br>QT</b>");
unsigned char *data = new unsigned char [1024];
strcpy((char*)data,"Hello world");
item->setData(0,Qt::UserRole,data);
item->setText(2,count );
ui.treeWidget->addTopLevelItem(item);
}
}
qttest::~qttest()
{
}
void qttest::on_listWidget_currentRowChanged(int)
{
}
{
//QString text = ui.treeWidget->currentItem()->text(1);
char *num =(char*) ui.treeWidget->currentItem()->data(0,Qt::UserRole).value< char* >();
ui.listWidget->addItem(num);
}
Code can't compile ,here error
Code:
Error 1 error C2039: 'qt_metatype_id' : is not a member of 'QMetaTypeId<T>' e:\qt\4.2.2\src\corelib\kernel\qmetatype.h 166
Thank you in advance.
Re: How to store/get pointer on QTreeWidgetItem data?
Here are your solutions:
- Use void pointers ( really not recommended )
- Register your custom types with qRegisterMetaType.
Why don't you use QString instead of const char*? Or is this data a larger buffer stored as char*?
Regards
Re: How to store/get pointer on QTreeWidgetItem data?
Don't use QString is your data is not text. Use QByteArray instead.