[gelöst] QScrollArea verkleinert Inhalt bis zur Unlesbarkeit
Verfasst: 22. Mai 2009 12:53
Moin Moin!
Mein Programm listet MC-Fragen (TplQuestion, abgeleitet von QWidget) untereinander. Allerdings ist die Liste länger als die vertikale Fläche eines Bildschirms. Ein zuvor verwendeter QFrame, der die Widgets der Fragen aufnimmt, ging über den unteren Bildschirmrand hinaus. Ich würde es gerne so einrichten, dass das Fenster bis maximal zum unteren Bildschirmrand reicht, dann endet und die restlichen Fragen über das Rollen mit einem Scrollbar erreicht werden können. Um dies zu erreichen verwende ich jetzt statt des QFrame eine QScrollArea. Allerdings wird nun der Inhalt in dieser QScrollArea verkleinert und zwar so, dass man den Inhalt nicht mehr erkennen kann. Ich möchte aber, dass alle Widgets weiterhin in der Standardgröße angezeigt werden.
Wie es aktuell ausschaut, zeigt der Screenshot im Anhang.
Die Anweisung "area->setWidgetResizable(false)" hat keine Abhilfe geschaffen.
Wo liegt das Problem?
Würde mich über Hilfe riesig freuen!
Beste Grüße,
der Luftballon
mainwindow.cpp (uninteressante Bereiche durch [...] ersetzt
Mein Programm listet MC-Fragen (TplQuestion, abgeleitet von QWidget) untereinander. Allerdings ist die Liste länger als die vertikale Fläche eines Bildschirms. Ein zuvor verwendeter QFrame, der die Widgets der Fragen aufnimmt, ging über den unteren Bildschirmrand hinaus. Ich würde es gerne so einrichten, dass das Fenster bis maximal zum unteren Bildschirmrand reicht, dann endet und die restlichen Fragen über das Rollen mit einem Scrollbar erreicht werden können. Um dies zu erreichen verwende ich jetzt statt des QFrame eine QScrollArea. Allerdings wird nun der Inhalt in dieser QScrollArea verkleinert und zwar so, dass man den Inhalt nicht mehr erkennen kann. Ich möchte aber, dass alle Widgets weiterhin in der Standardgröße angezeigt werden.
Wie es aktuell ausschaut, zeigt der Screenshot im Anhang.
Die Anweisung "area->setWidgetResizable(false)" hat keine Abhilfe geschaffen.
Wo liegt das Problem?
Würde mich über Hilfe riesig freuen!
Beste Grüße,
der Luftballon
mainwindow.cpp (uninteressante Bereiche durch [...] ersetzt
Code: Alles auswählen
#include "mainwindow.h"
#include "tplQuestion.h"
#include <QtCore>
#include <QtGui>
#include <QtSql>
MainWindow::MainWindow( QWidget * parent, Qt::WFlags f) : QMainWindow(parent, f) {
[..]
// Hauptfenster
resize(640,480);
setWindowTitle("Qt-Test");
area = new QScrollArea(this);
QVBoxLayout *VBox = new QVBoxLayout(area);
// Menü
QMenu *fileMenu = new QMenu(tr("&Datei"), this);
menuBar()->addMenu(fileMenu);
fileMenu->addAction(QIcon("./images/cancel.png"), tr("Neue Frage..."), qD, SLOT(exec()), QKeySequence(tr("Ctrl+N", "Datei|Neue Frage...")));
fileMenu->addAction(QIcon("./images/cancel.png"), tr("Beenden..."), this, SLOT(close()), QKeySequence(tr("Ctrl+X", "Datei|Beenden")));
// Verbindungen
[...]
// Abfrage der Datenbank und Erstellen der Fragen-Templates
[...]
while( query.next() ) {
QHash<QString, QVariant> hash;
[...]
tpl[i] = new TplQuestion(hash);
VBox->addWidget(tpl[i]);
i++;
}
// Ausgabe
setCentralWidget(area);
}