Im Unterfenster Scrollbalken erzeugen

Alles rund um die Programmierung mit Qt
Antworten
Anfänger
Beiträge: 34
Registriert: 11. März 2005 18:17

Im Unterfenster Scrollbalken erzeugen

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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.
Anfänger
Beiträge: 34
Registriert: 11. März 2005 18:17

Beitrag 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
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Aha! Du darfst deinem Widget nicht die QScrollArea hinzufügen sondern du mußt dem viewport von QScrollArea dein Widget hinzufügen...
Anfänger
Beiträge: 34
Registriert: 11. März 2005 18:17

Beitrag von Anfänger »

Was heißt das genau? Wie würde ich das dann machen?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

QScrollArea::viewport() ist der Parent deiner Widgets und deines Grids
Anfänger
Beiträge: 34
Registriert: 11. März 2005 18:17

Beitrag 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 :-/
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Liefere doch den mal den kompletten Code...
Anfänger
Beiträge: 34
Registriert: 11. März 2005 18:17

Beitrag 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.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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...
Anfänger
Beiträge: 34
Registriert: 11. März 2005 18:17

Beitrag von Anfänger »

Liefert leider Fehlermeldung:
"class QWidget has no member named viewport()

:-/
Antworten