我想在QDockWidget上顯示使用QTreeView的文件系統。樹會動態更改,所以我決定使用QTreeView而不是QTreeWidget。QTreeView放在QDockWidget中時不顯示
這裏是我的代碼:
QFile file(":/default.txt");
file.open(QIODevice::ReadOnly);
TreeModel model(file.readAll());
file.close();
QTreeView w;
w.setModel(&model);
swatch1->setWidget(&w);
w.setEnabled(true);
addDockWidget(leftarea, swatch1);
swatch1的類型是QDockWidget的。上面的代碼在MainWindow類型的函數體中(繼承自)。代碼運行順利,樹不顯示。我也嘗試了另一種方式:將QTreeView放入一個QVBoxLayout(使用setWidget方法),然後將其放入一個QDockWidget(使用setLayout方法)。這第二個代碼也順利運行,並且樹不顯示。
此代碼是從Qt Creator IDE上的一個工作示例中複製的,我測試了它的工作。唯一的區別是,在最初的QTreeView示例中,上面的代碼放在main(){.....}函數內。
有沒有人有一個工作的例子,將QTreeView放入QDockWidget並工作(代碼實際上顯示樹)?提前致謝。
如果唯一的區別是你的代碼不在主函數內部,你確定它確實被執行了嗎?並且樹視圖是否包含數據 – xander