是否可以从qt QColumnView中移除预览小部件?

7
我需要在Qt视图中显示一组分层数据。我使用QColumnView来显示模型。但是,该视图具有一个特性,即视图中的最后一列将被降级为预览小部件。是否可以隐藏它?例如,像view.setPreviewWidget(NULL)这样的内容,尽管这会破坏程序。
编辑:我应该澄清,我想要一种方法来完全隐藏最后一列,即使视图中的最后一列是模型的“叶子”,也不要预留空间。

将previewWidget的宽度设为零(我认为这是最后一列)。QColumnView::setColumnWidths - Redanium
1个回答

0

当按钮被点击时,它将被隐藏。

#include <QtGui/QApplication>
#include <QtGui/QColumnView>
#include <QtGui/QPushButton>
#include <QtGui/QFileSystemModel>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QColumnView view;
    QFileSystemModel model;
    QPushButton button(&view);

    button.setText("Click me");
    QObject::connect(&button, SIGNAL(clicked()), &button, SLOT(hide()));

    model.setRootPath("/");

    view.setModel(&model);
    view.setPreviewWidget(&button);
    view.show();

    return a.exec();
}

请注意,它将永久隐藏。如果您想再次显示它,必须调用show()


啊,抱歉我应该澄清一下,我希望预览空间完全不可见。这样确实隐藏了按钮,但留下了一个空白列。 - user412411
您想让剩余的列被拉伸并占据预览小部件留下的空间吗? - andref
2
啊,是的,那正是我想要的,我该如何做呢? - user412411

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接