2010-08-05 6 views
6

Ich muss eine hierarchische Menge von Daten in einer Qt-Ansicht anzeigen. Ich verwende QColumnView, um das Modell anzuzeigen. Es gibt jedoch ein Feature, bei dem die letzte Spalte in der Ansicht in ein Vorschau-Widget verschoben wird. Ist es möglich, dies zu verbergen? Ex, etwas wie view.setPreviewWidget (NULL), obwohl das das Programm brichtIst es möglich, das Vorschau-Widget aus einem Qt QColumnView zu entfernen?

EDIT: Ich sollte klarstellen, dass ich eine Möglichkeit haben möchte, die letzte Spalte vollständig zu verbergen, dh die letzte Spalte in meiner Ansicht zu sein "Blätter" des Modells und keine Vorschau haben

+0

machen Sie die Breite des previewWidget Null (ich denke, es ist die letzte Spalte) [QColumnView :: setColumnWidths] (http://doc.qt.io/qt-4.8/qcolumnview.html#setColumnWidths) – Redanium

Antwort

0

Dies wird die Schaltfläche ausblenden, wenn es geklickt wird.

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

Beachten Sie, dass es für immer verborgen bleiben wird. Sie müssen show() anrufen, wenn Sie möchten, dass es erneut angezeigt wird.

+0

Ahh, Entschuldigung Ich hätte klarstellen sollen, dass ich den Vorschaubereich überhaupt nicht sehen möchte. Dadurch wird die Schaltfläche ausgeblendet, es bleibt jedoch eine leere Spalte übrig. – user412411

+0

Sie möchten, dass die verbleibenden Spalten gestreckt werden und den Platz einnehmen, der vom Vorschau-Widget übrig bleibt? – andref

+1

Ahh ja, genau das will ich, wie würde ich das machen? – user412411

Verwandte Themen