c++ - QTreeView可以加入QDockWidget吗

标签 c++ qt user-interface qtreeview qdockwidget

有没有人有一个简短的例子(希望是在 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/

相关文章:

javascript - 带背景图片的Qt Installer

php - jQuery UI 自动完成不会显示返回的 json (PHP)

java - 实现一个负责创建和存储对象的 "manager"类

c++ - 菜单导航的设计模式(c/c++)

c++ - 如果 std::string 从未修改过,它可以在创建后移动吗?

c++ - Unicode 与 wchar_t 与 C++ 中的 ICU 的不一致

c++ - 生成E=0的浮点随机数

c++ - boost::asio::spawn yield 作为回调

c++ - 替换 sync() 命令

c++ - 在 Qt 中的 C++ 中添加 C 函数时出现问题