我想在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