2010-08-05 9 views
6

Necesito mostrar un conjunto jerárquico de datos en una vista de qt. Estoy usando QColumnView para mostrar el modelo. Sin embargo, hay una función tal que la última columna en la vista será relegada a un widget de vista previa. ¿Es posible ocultar esto? Ej, algo así como view.setPreviewWidget (NULL), aunque esto rompe el programa¿Es posible eliminar el widget de vista previa de QtolumnView?

EDIT: Debo aclarar que me gustaría una forma de ocultar la última columna por completo, es decir, tener la última columna en mi opinión ser la "hojas" del modelo, y para no tener un espacio de vista previa

+0

hacer que el ancho de la previewWidget sea cero (creo que es la última columna) [QColumnView :: setColumnWidths] (http://doc.qt.io/qt-4.8/qcolumnview.html#setColumnWidths) – Redanium

Respuesta

0

Esto ocultará el botón cuando se haga clic.

#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(); 
} 

Tenga en cuenta que se ocultará para siempre. Debe llamar al show() si desea que se vuelva a mostrar.

+0

Ahh, lo siento Debería haber aclarado que me gustaría que el espacio de vista previa no sea visible en absoluto. Esto esconde el botón, pero deja una columna en blanco. – user412411

+0

¿Desea estirar las columnas restantes y ocupar el espacio dejado por el widget de vista previa? – andref

+1

Ahh sí, eso es exactamente lo que quiero, ¿cómo voy a hacer eso? – user412411

Cuestiones relacionadas