я использую QTreeView
а также QStandardItemModel
чтобы отобразить его содержимое (чтение из файла XML) в tree view
, Парсер файлов работает нормально, но когда я использую представление для отображения данных, sizePolicy
просто не работает.
Зачем? Как сделать так, чтобы площадь дерева расширялась?
(Как показано ниже, какое дерево не расширяется?)
Картинка с изображением дерева:
код (отредактированный, чтобы добавить часть «расположения», но не работать, также.):
...
QStandardItemModel *model = new QStandardItemModel();
preOrder(doc.firstChild(), model);
view = new QTreeView(pageDetails);
view->setModel(model);
model->setHorizontalHeaderLabels(QStringList(""));
QHBoxLayout* lay=new QHBoxLayout(pageDetails);
lay->setContentsMargins(0, 0, 0, 0);
lay->addWidget(view);
view->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
pageDetails->setLayout(lay);
view->show();
Я решил проблему сейчас:
Но до сих пор не знаю, как удалить заголовок …
Проблема вызвана Qt Designer. Я использую его для добавления родительского интерфейса виджета, но установил горизонтальное расположение в дизайнере (довольно сложно найти).
Я просто не знаю, почему приведенный выше код просто не работает в этом случае.
PS:
Если бы я оставил комментарий с кодом:
//QHBoxLayout* lay=new QHBoxLayout(pageDetails);
//lay->setContentsMargins(0, 0, 0, 0);
//lay->addWidget(view);
//view->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
//pageDetails->setLayout(lay);
Кажется:
PS2:
удалить заголовок успешно !:
комментарий model->setHorizontalHeaderLabels(QStringList(""));
добавлять view->header()->setVisible(false);
Других решений пока нет …