0

と を使用QTreeViewQStandardItemModelて、その内容 (xml ファイルから読み取ったもの) を .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();
4

1 に答える 1

0

私は今問題を解決しました:
ここに画像の説明を入力

しかし、ヘッダーを削除する方法がまだわかりません...
問題は Qt Designer が原因です。これを使用して親ウィジェットの ui を追加しますが、デザイナーで水平レイアウトに設定します (見つけるのがやや難しい)。
この場合、上記のコードが機能しない理由がわかりません。

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);

于 2013-03-17T06:55:14.683 に答える