Seite 1 von 1

Qt-Designer

Verfasst: 29. Oktober 2007 20:19
von Heraklea67
Servus Leute,

also einige grundlagen habe ich schon durch.

hab da mal so ne frage, das linke dockwidget im qt-designer. Was ist das genau?

ist das ein Tree im dock oder was anderes?

Möchte gerne sowas mal programmieren, gibts eventuell einen wegweiser oder so??

Verfasst: 29. Oktober 2007 21:37
von upsala
Das ist ein QTreeView bei dem die jeweiligen Titel durch ein spezielles QItemDelegate dargestellt werden. Du findest das Delegate als SheetDelegate im Code des Designers wieder...

Verfasst: 30. Oktober 2007 21:13
von Heraklea67
Hallo danke Dir erstmal, aber für den ersten Schritt ist dass ziemlich heftig.
Sag mal gibts da net so ein Snippet wo man sich das mal anschauen kann.
In Designer/src sieht man ja den wald vor lauter bäume nicht.

Verfasst: 30. Oktober 2007 21:33
von upsala
Beschäftige dich erst mal allgemein mit der Model-View-Programmierung.
Wenn du dich dann ein wenig eingearbeitet hast, kannst du ja mal das oben angesprochene Delegate rauskopieren und zum testen bei dir einbauen.

Verfasst: 30. Oktober 2007 21:45
von Heraklea67
Danke, also habe mal ein Tree gemacht: Der code:

Code: Alles auswählen

QDockWidget *docktree = new QDockWidget(tr("MyTestTree"), this);
    docktree->minimumHeight();
    docktree->setAutoFillBackground(true);
    docktree->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
    QTreeWidget *testTree = new QTreeWidget(docktree);
    testTree->setColumnCount(1);
    
    
    QStringList headerLabels;
    headerLabels << "Label";
    testTree->setHeaderLabels(headerLabels);
    
  	QTreeWidgetItem* item[10];
    item[0] = new QTreeWidgetItem(testTree);
    item[0]->setText(0, "Node-One");
    
    for (int i=1; i< 5; ++i)
      item[i] = new QTreeWidgetItem(item[0]);
    item[1]->setText(0, "a");
    item[2]->setText(0, "b");
    item[3]->setText(0, "c");
    item[4]->setText(0, "d");
    item[5] = new QTreeWidgetItem(testTree);
    item[5]->setText(0, "Node-Two");
    for (int i=6; i< 10; ++i)
      item[i] = new QTreeWidgetItem(item[5]);
    item[6]->setText(0, "a");
    item[7]->setText(0, "b");
    item[8]->setText(0, "c");
    item[9]->setText(0, "d");

Ich bin ja willig zu lernen so ist es ja nicht aber was für dich erstmal selbstverständlich erscheint muss ich mir erstmal erarbeiten.

Also da der tree steht wo muss ich jetzt ansetzen ;o)