Einfache Applikation in MainWindow umgestalten

Verschiedenes zu Qt
Antworten
TobiG
Beiträge: 11
Registriert: 9. Juli 2007 00:43

Einfache Applikation in MainWindow umgestalten

Beitrag von TobiG »

Hallo zusammen,

ich bin seid einiger Zeit dabei mich mit QT zu beschäftigen, nun sitze ich schon eine ganze Zeit an folgenden Problem - ich hab eines der Examples ein wenig umgearbeitet (Sorted Item View) und will dies nun in ein MainWindow einfügen

Code: Alles auswählen

#include <QtGui>

#include "monitor.h"


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

        //MainWindow mainWin;
        //mainWin.show();

        QFile file(":/default.txt");
        file.open(QIODevice::ReadOnly);
        TreeModel model(file.readAll());
        file.close();

        QSortFilterProxyModel sortingModel;
        sortingModel.setSourceModel(&model);

        QTreeView sortedView;
        sortedView.setModel(&sortingModel);
        sortedView.setWindowTitle(QObject::tr("Monitor"));
        sortedView.header()->setSortIndicator(1, Qt::AscendingOrder);
        sortedView.header()->setSortIndicatorShown(true);
        sortedView.header()->setClickable(true);
        //sortedView.header()->hide();
        sortedView.setRootIsDecorated(false);
        sortedView.show();

        return app.exec();
}
So wird mir das 1a dargestellt - nun habe ich mir ein MainWindow dazu gebastelt

Code: Alles auswählen

MainWindow::MainWindow()
{
    QFile file(":/test.txt");
    file.open(QIODevice::ReadOnly);
    model = new TreeModel(file.readAll());
    file.close();

    QSortFilterProxyModel sortingModel;
    sortingModel.setSourceModel(model);

    sortedView = new QTreeView();
    sortedView->setModel(&sortingModel);
    sortedView->header()->setSortIndicator(1, Qt::AscendingOrder);
    sortedView->header()->setSortIndicatorShown(true);
    sortedView->header()->setClickable(true);
    sortedView->setRootIsDecorated(false);

    setCentralWidget(sortedView);	
    setWindowTitle(QObject::tr("Monitor"));

    createActions();
    createMenus();
    createToolBars();

    readSettings();
    setCurrentFile("");
}
Hierbei wird zwar das Hauptfenster angezeigt aber das zentrale Widget ist leer.

Kann mir mal jemand auf die Sprünge helfen?

Besten Dank, Tobias!
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du nimmst deiner View am Ende der Funktion das Model wieder weg. Dann kann er auch nichts mehr darstellen.
TobiG
Beiträge: 11
Registriert: 9. Juli 2007 00:43

Beitrag von TobiG »

Hallo, besten Dank für die schnelle Antwort, aber so richtig viel kann ich damit nicht anfangen :? Womit nehme ich dem View denn das Model weg?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wie lange denkst du, daß dieses Model 'lebt'?
QSortFilterProxyModel sortingModel;
TobiG
Beiträge: 11
Registriert: 9. Juli 2007 00:43

Beitrag von TobiG »

Gute Frage, ich weiss es nicht! Warscheinlich bis zum Ende der Funktion. Ich habe das einfach so übernommen ohne darüber nachzudenken! Was müsste ich denn ändern, damit ich es nicht weg nehme?

Edit:

Alles klar - ich nehme die Frage schnell zurück ich weiss worauf die hinaus wolltest! Besten Dank für die schnellen und guten Antworten! :D
Antworten