2013-04-16 3 views
1

Я имею QList следующим образом:QT, как использовать QTableView для отображения QMap в QList

QList< QMap<QString, QString> > x;

, например:

table(1) <name<name(1),ABC> >

table(1) <age<age(1),10> >

I хотели бы иметь «имя» и «возраст» в качестве заголовка столбцов и до них значения «ABC» и «10». Затем, когда у меня есть:

table(1) <name<name(2),DFG> >

table(1) <age<age(2),20> >

значения "ДФГ" и "20" поставляется в следующей строке

так, как я могу сделать это сделать дисплей?

ответ

2

Для этого вам необходимо передать свои данные модели, а затем вы можете использовать QTableView для отображения ваших данных; установить модель для таблицы с помощью следующей выборки:

// creating a 4*4 table 
QStandardItemModel* table_model = new QStandardItemModel(4, 4); 
for (int row = 0; row < 4; ++row) { 
    for (int column = 0; column < 4; ++column) { 
     QStandardItem *item = new QStandardItem((QString())); // you should set your data here (in this case as a string) 
     table_model.setItem(row, column, item); 
    } 
} 

, то вы должны передать модель в Tableview:

QTableView table; 
table.setModel(table_model); 
table.show(); 
+1

, конечно, вы должны установить таблицу на своем любимом стиле ... здесь я только что упомянул пример. –

+1

спасибо, сейчас он работает (я также отредактировал ваш ответ, пожалуйста, проверьте его) –