Доброго времени!
Есть необходимость создать табвиджет с однотипными таблицами на каждой вкладке (данные будут браться из одной БД, но фильтры будут применяться разные). При этом, если в одной из вкладок пользователь изменяет размеры столбцов или их порядок - те же изменения должны происходить и в остальных вкладках. Самое очевидное, как мне казалось, решение - создать один горизонтальный хедер и подсунуть его каждой таблице. Простейший код:
C++ (Qt)
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTabWidget w;
QTableView table1;
QTableView table2;
QTableView table3;
QHeaderView header(Qt::Horizontal);
QStandardItemModel model(5,5);
for(int i = 0; i < model.rowCount(); i++){
for(int j = 0; j < model.columnCount(); j++)
model.setData(model.index(i,j), i*j);
}
table1.setModel(&model);
table2.setModel(&model);
table3.setModel(&model);
header.setMovable(true);
table1.setHorizontalHeader(&header);
table2.setHorizontalHeader(&header);
table3.setHorizontalHeader(&header);
w.addTab(&table1, "table1");
w.addTab(&table2, "table2");
w.addTab(&table3, "table3");
w.setWindowTitle("TEST");
w.show();
return a.exec();
}
Но не тут-то было: во всех вкладках, кроме последней, вместо заголовка зияла пустота:
При этом, если в последней вкладке (в которой заголовок отображается корректно), изменить ширину или порядок столбцов, то они меняются и в других вкладках, то есть фактически хедер установился, но не отображается! Что надо сделать, чтобы он отобразился? Или, если я ерунду творю, наставьте меня на путь истинный, ибо я только учусь.
Спасибо заранее.