2010-08-05 74 views
6

我需要在qt视图中显示一组分层数据。我正在使用QColumnView来显示模型。但是,有一个功能可以将视图中的最后一列降级到预览窗口小部件。有没有可能隐藏这个?例如,像view.setPreviewWidget(NULL),虽然这打破了程序是否可以从qt QColumnView中删除预览小部件?

编辑:我应该澄清,我想要一种方法来完全隐藏最后一列,即有我的视图中的最后一列是模型的“叶”,并且不具有预览空间

+0

使得previewWidget的宽度为零(我认为它是最后一列)[QColumnView :: setColumnWidths](http://doc.qt.io/qt-4.8/qcolumnview.html#setColumnWidths) – Redanium 2016-07-15 23:05:42

回答

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()

+0

Ahh,sorry我应该澄清,我希望预览空间根本不可见。这确实隐藏了按钮,但留下了一个空白列。 – user412411 2010-08-05 22:16:46

+0

您希望剩余的列被拉伸并占用预览小部件留下的空间吗? – andref 2010-08-05 23:27:47

+1

啊,是的,这正是我想要的,我会怎么做呢? – user412411 2010-08-06 16:34:56

相关问题