Seite 1 von 1
Im Unterfenster Scrollbalken erzeugen
Verfasst: 26. November 2006 14:44
von Anfänger
Hallo,
ich möchte gerne in einem Unterfenster von meinem Hauptfenster einen Scrollbalken erzeugen. Habe dieses mit QScrollBar und QScrollArea versucht, allerdings klappt dies nicht.
Ich habe das folgendermaßen gemacht:
QScrollBar *scrollBar = new QScrollBar(Qt::Vertical, test() );
scrollBar->setValue(60);
grid->addWidget(scrollBar,1,1, 5, 1);
Den Scrollbalken sehe ich zwar, aber er scrollt mein Fenster nicht.
Habe dann versucht mit QScrollArea das ganze zu machen, aber das klappt nicht.
Kann mir vielleicht jemand helfen?
Lg
Anfänger
Verfasst: 26. November 2006 14:54
von upsala
Naja, ich seh keine Verknüpfung von der QScrollBar zu einem Widget. Aber ich finde der Code mit QScrollArea wäre interessanter, zeig uns doch mal den.
Verfasst: 26. November 2006 14:59
von Anfänger
Hallo Upsala,
der Code für die ScrollArea sah so aus:
scrollArea = new QScrollArea();
grid->addWidget(scrollArea, 1, 1, 5, 1);
scrollArea->setWidgetResizable(true);
das Grid liegt in meinem Fenster - > habe ich dann nicht damit die ScrollBar zu meinem Fenster hinzugefügt? Wie füge ich ansonsten meine ScrollBar dem Fenster hinzu?
lg
Verfasst: 26. November 2006 15:06
von upsala
Aha! Du darfst deinem Widget nicht die QScrollArea hinzufügen sondern du mußt dem viewport von QScrollArea dein Widget hinzufügen...
Verfasst: 26. November 2006 15:10
von Anfänger
Was heißt das genau? Wie würde ich das dann machen?
Verfasst: 26. November 2006 16:12
von upsala
QScrollArea::viewport() ist der Parent deiner Widgets und deines Grids
Verfasst: 26. November 2006 18:34
von Anfänger
Ich bekomme es nicht hin...
Habe nun folgends versucht:
scrollArea = new QScrollArea();
scrollArea->setMinimumSize(500,500);
scrollArea->setWidget(eWidget);
scrollArea->viewport();
nun zeigt er mir mein Fenster gar nicht mehr an :-/
Verfasst: 26. November 2006 18:47
von upsala
Liefere doch den mal den kompletten Code...
Verfasst: 26. November 2006 18:54
von Anfänger
{
eWidget = new QWidget();
eWidget->setGeometry(400, 300, 400,400);
eWidget->setWindowTitle("Test");
eGrid = new QGridLayout;
eGrid->addWidget(title,0,0);
eGrid->addWidget(createBox(),1,0);
eGrid->addWidget(createBox(),2,0);
scrollArea = new QScrollArea();
scrollArea->setMinimumSize(500,500);
scrollArea->setWidget(eWidget);
scrollArea->viewport();
eWidget->setLayout(highscoreGrid);
eWidget->show();
}
Im Konstruktor meiner Klasse, welche von QWidget abgeleitet ist.
Verfasst: 26. November 2006 19:28
von upsala
Code: Alles auswählen
eWidget = new QScrollArea();
eWidget->setGeometry(400, 300, 400,400);
eWidget->setWindowTitle("Test");
eGrid = new QGridLayout;
eGrid->addWidget(title, 0, 0);
eGrid->addWidget(createBox(), 1, 0);
eGrid->addWidget(createBox(), 2, 0);
eWidget->viewport()->setLayout(highscoreGrid);
eWidget->show();
ungetestet...
Verfasst: 26. November 2006 21:01
von Anfänger
Liefert leider Fehlermeldung:
"class QWidget has no member named viewport()
:-/