#include <QApplication>
#include <QtCore>
#include <QStandardItemModel>
#include <QTableView>
#include <QtGui>
using namespace std;
class MyObject {
};
Q_DECLARE_METATYPE(MyObject)
class PaintDelegate : public QStyledItemDelegate {
public:
PaintDelegate
(QWidget *parent
= 0) : QStyledItemDelegate
(parent
) {}
{
if (qVariantCanConvert<MyObject>(index.data(Qt::UserRole + 1))) {
MyObject myObj = qVariantValue<MyObject>(index.data(Qt::UserRole + 1));
} else {
QStyledItemDelegate::paint(painter, option, index);
}
}
};
int main(int argc, char** argv)
{
item->setData(qVariantFromValue(MyObject()));
model->setItem(0, 0, item);
tableView2->setModel(model);
tableView2->setItemDelegate(new PaintDelegate);
tableView2->show();
QtConcurrent::run(updateModel, model);
return app.exec();
}
for (;;){
model->item(0, 0)->setData(qVariantFromValue(MyObject()));
}
}
#include <QApplication>
#include <QtCore>
#include <QStandardItemModel>
#include <QTableView>
#include <QtGui>
using namespace std;
class MyObject {
};
Q_DECLARE_METATYPE(MyObject)
class PaintDelegate : public QStyledItemDelegate {
public:
PaintDelegate(QWidget *parent = 0) : QStyledItemDelegate(parent) {}
void paint(QPainter *painter, const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
if (qVariantCanConvert<MyObject>(index.data(Qt::UserRole + 1))) {
MyObject myObj = qVariantValue<MyObject>(index.data(Qt::UserRole + 1));
} else {
QStyledItemDelegate::paint(painter, option, index);
}
}
};
int main(int argc, char** argv)
{
QApplication app( argc, argv );
QStandardItemModel *model = new QStandardItemModel();
QStandardItem * item = new QStandardItem("item 1");
item->setData(qVariantFromValue(MyObject()));
model->setItem(0, 0, item);
QTableView * tableView2 = new QTableView();
tableView2->setModel(model);
tableView2->setItemDelegate(new PaintDelegate);
tableView2->show();
extern void updateModel(QStandardItemModel*);
QtConcurrent::run(updateModel, model);
return app.exec();
}
void updateModel(QStandardItemModel* model){
for (;;){
model->item(0, 0)->setData(qVariantFromValue(MyObject()));
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks