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
[gelöst] QProgressbar in QMainWindow aus anderen Klassen akt
[gelöst] QProgressbar in QMainWindow aus anderen Klassen akt
Zuletzt geändert von qstel am 15. August 2006 22:48, insgesamt 1-mal geändert.
[gelöst]QProgressbar in QMainWindow aus anderen Klassen aktu
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
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
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
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