Statusbar unterteilen

Alles rund um die Programmierung mit Qt
Antworten
Neuling_
Beiträge: 83
Registriert: 8. August 2009 20:55

Statusbar unterteilen

Beitrag 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);
Qt 2009.05
Entw.-umgebung Qt-Creator
russkij
Beiträge: 57
Registriert: 14. Dezember 2005 11:57

Beitrag 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
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

sind widgets ohne parent ncht aut. fenster??
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

Nein, insertWidget setzt den Parent.

Allerdings ist die Progressbar nach *wo immer der code auch steht* wieder weg ;)
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

jupp, wer lesen kann ist klar im Vorteil :D
russkij
Beiträge: 57
Registriert: 14. Dezember 2005 11:57

Beitrag 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.
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

dann sieht sie aber auch keiner ;-)
russkij
Beiträge: 57
Registriert: 14. Dezember 2005 11:57

Beitrag 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
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

ok.
und jetzt sag du mal was nicht funktioniert ;-) das hab ich leider net finden können ;-)
russkij
Beiträge: 57
Registriert: 14. Dezember 2005 11:57

Beitrag von russkij »

äähm, bei mir läuft alles wie gewünscht :-)
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

rofl

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

lol
russkij
Beiträge: 57
Registriert: 14. Dezember 2005 11:57

Beitrag von russkij »

hehe habs mir schon gedacht :-)

nur war ich mir nicht sicher, meistens bin ich derjenige, der irgend was durch einander bringt :-)
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag 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();
}
Antworten