Seite 1 von 1

Statusbar unterteilen

Verfasst: 23. Oktober 2009 13:48
von Neuling_
Hallo,

kann mirjemand kurz sagen wie ich eine QStatusBar in x Teile unterteilen kann?

Hab versucht mir eine neue Klasse zu erstellen, welche von QStatusBar abgeleitet ist und ich später beim aufruf des Main-Konstruktors:
this->SetStatusBar(AbgelKlasse);
aufrufe.
Funktioniert leider noch nicht ganz.

Ist der Lösungs ansatz falsch?
Gibt es andere leichtere (dadurch Fehler unanfälligere) Möglichkeiten?


Gruß



PS:
Quellcodeausschnitt der abgeleiteten Klasse:

Code: Alles auswählen

QHBoxLabel statusBarLayout;
statusBarLayout.addWidget (&QLabel1, 50, Qt::AlignLeft);
    statusBarLayout.addWidget (&QLabel2, 50, Qt::AlignCenter);
    statusBarLayout.addWidget (&QLabel3, 50, Qt::AlignRight);

Verfasst: 26. Oktober 2009 13:12
von russkij
Beispiel mit geteiler Statusbar:

QProgressBar progbar;
bar.setMinimum(0);
bar.setMaximum(0);
bar.setTextVisible(false);

QLabel *statusLabel = new QLabel("bla bla bla");

statusBar()->insertWidget(0, statusLabel);
statusBar()->insertWidget(1, &bar, 1);


grüße

Verfasst: 26. Oktober 2009 14:50
von AuE
sind widgets ohne parent ncht aut. fenster??

Verfasst: 26. Oktober 2009 15:27
von pfid
Nein, insertWidget setzt den Parent.

Allerdings ist die Progressbar nach *wo immer der code auch steht* wieder weg ;)

Verfasst: 26. Oktober 2009 16:33
von AuE
jupp, wer lesen kann ist klar im Vorteil :D

Verfasst: 26. Oktober 2009 16:52
von russkij
hehe ja, in diesem Beispiel ist die progressbar weg. Ist an der Stelle auch gewollt, wenn die Funktion endet, wurde schon alles was langsam ist abgearbeitet.

Verfasst: 26. Oktober 2009 17:01
von AuE
dann sieht sie aber auch keiner ;-)

Verfasst: 27. Oktober 2009 08:38
von russkij
AuE hat geschrieben:dann sieht sie aber auch keiner ;-)
doch doch, habe ein diagnose tool, rattert etwa 10-20 secunden, je nach umgebung. Als aller erstes wird die GUI mit show() dargestellt.

also in etwa der Ablauf:
gui->show();
gui->startDiagnose()
{
erstelle progressbar und lege diese in die statuszeile;
starte auswertung;
ratter ratter ratter ; //ca 10-20 secunden lauf, hier ist die progressbar immer sichtbar
funktionsende, progressbar nicht mehr sichtbar -> hat sein zweck erfüllt
}
gui->exec();


hat zwar nicht direkt was mit der Fragestellung zu tun aber mal so, vollständigkeitshalber :-)

grüße

Verfasst: 27. Oktober 2009 09:28
von AuE
ok.
und jetzt sag du mal was nicht funktioniert ;-) das hab ich leider net finden können ;-)

Verfasst: 27. Oktober 2009 10:49
von russkij
äähm, bei mir läuft alles wie gewünscht :-)

Verfasst: 27. Oktober 2009 14:40
von AuE
rofl

sch*** dachte du warst das mit dem prob :-D

lol

Verfasst: 27. Oktober 2009 15:02
von russkij
hehe habs mir schon gedacht :-)

nur war ich mir nicht sicher, meistens bin ich derjenige, der irgend was durch einander bringt :-)

Verfasst: 29. Oktober 2009 07:02
von AuE
The MainWindow constructor calls createStatusBar() to set up the status bar:
void MainWindow::createStatusBar()
{
locationLabel = new QLabel(" W999 ");
locationLabel->setAlignment(Qt::AlignHCenter);
locationLabel->setMinimumSize(locationLabel->sizeHint());
formulaLabel = new QLabel;
formulaLabel->setIndent(3);
statusBar()->addWidget(locationLabel);
statusBar()->addWidget(formulaLabel, 1);
connect(spreadsheet, SIGNAL(currentCellChanged(int, int, int, int)),
this, SLOT(updateStatusBar()));
connect(spreadsheet, SIGNAL(modified()),
this, SLOT(spreadsheetModified()));
updateStatusBar();
}