有没有人有一个简短的例子(希望是在 C++ 中)来说明将 QTreeView 添加到 QDockWidget?
我尝试使用 QLayout 作为中间对象,如:
QFile file(":/default.txt");
file.open(QIODevice::ReadOnly);
TreeModel model(file.readAll());
file.close();
QTreeView w;
w.setModel(&model);
w.setWindowTitle(QObject::tr("Simple Tree Model"));
QGridLayout *layout;
layout = new QGridLayout;
layout->addWidget(&w, 0, 0, 1, 3);
swatch1->setLayout(layout);
其中 swatch1 是来自 QDockWidget 的类型。我的代码运行了,但是树没有出现在 DockWidget 上。
我看过QTreeWidget的例子,但是由于 TreeView 会经常改变,所以我更喜欢使用QTreeView。
有没有人可以提供一个简短的例子来说明如何将 QTreeView 放到 QDockWidget 上?谢谢
最佳答案
Jay,我想在这里补充一点。您的第一个建议代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
QDockWidget* dock = new QDockWidget;
setCentralWidget(dock);
QTreeView* treeView = new QTreeView;
dock->setWidget(treeView);
QFileSystemModel* treeModel = new QFileSystemModel;
treeModel->setRootPath(QDir::currentPath());
treeView->setModel(treeModel);
}
我试过类似的东西。但是,在编译过程中,dock->setWidget(treeView) 失败并且有一条错误消息说这是不允许的。我无法理解,因为 QTreeView 是一个小部件,为什么不允许这样做。或者,例如,我为通过编译的 QTreeWidget 项目尝试了 dock->setWidget(treeWidget)。
关于c++ - QTreeView可以加入QDockWidget吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42693207/