[gelöst] QProgressbar in QMainWindow aus anderen Klassen akt

Alles rund um die Programmierung mit Qt
Antworten
qstel
Beiträge: 12
Registriert: 10. Februar 2006 16:34
Wohnort: Rheinhessen

[gelöst] QProgressbar in QMainWindow aus anderen Klassen akt

Beitrag von qstel »

Hallo,

ich hänge an einem Problem fest, wo ich weder in der QT4-Doc, in Google oder auch hier Antworten gefunden habe:

In meinem MainWindow habe ich eine QProgressBar mit addWidget in die Statusleiste eingefügt. Jetzt hätte ich gerne erreicht, dass der Status von Ausführungen in zwei Objekten anderer Klassen dort angezeigt wird.

Meine Gedanken gingen dahin, einen Zeiger auf die Instanz von QProgressBar dem Objekt mitzugeben, was wenigstens in einem Fall auch funktionierte, aber mir irgendwie als schlechter Stil vorkommt. Als zweites dachte ich daran, über Signal/Slot der ProgressBar den aktuellen Stand mitzuteilen, aber dann scheitere ich damit, vorher einen Range definieren zu können (der in den beiden Klassen unterschiedlich ist). Als dritte Lösung fiel mir ein, die statusBar mitzugeben, damit jedes andere Objekt dort eine eigene ProgressBar instantiieren könnte; irgendwie ganz schlecht.

Also viele Gedanken, keine Lösung. Alle Beispiele zeigen nur grundsätzliches, das Ansprechen über Klassen hinweg habe ich leider nicht gefunden.

Wer kann mir helfen?

Gruß Stefan
Zuletzt geändert von qstel am 15. August 2006 22:48, insgesamt 1-mal geändert.
qstel
Beiträge: 12
Registriert: 10. Februar 2006 16:34
Wohnort: Rheinhessen

[gelöst]QProgressbar in QMainWindow aus anderen Klassen aktu

Beitrag von qstel »

Wie´s einem so geht, man sucht und sucht und...
Dann fragt man und dann erst findet man!!

So habe ich die Antwort dann doch selbst gefunden, Erfahrene mögen mir verzeihen, die Frage überhaupt gestellt zu haben :wink:

In der .h-Datei werden mit
signals:
void prBarSetVisible(bool);
void prBarMax(int);
void prBarSetValue(init);

die entsprechenden Signale definiert. Beim Implementieren (.cpp) werden diese dann einfach mit
emit prBar...

aufgerufen, dort wo es Sinn macht.

Nach der Instanziierung im MainWindow verbindet man die die Signals auf dem üblichen Weg mit den Slots der QProgressBar.
connect(myClass, SIGNAL(prBar...(...)), progressBar, SLOT(set...(...)));

und DAS WAR´S schon. Ich hoffe, mit diesem Beitrag außer mir noch jemand anderem helfen zu können
Antworten