während endlos while schleife GUI nicht bedienbar

Alles rund um die Programmierung mit Qt
Antworten
Beginner
Beiträge: 7
Registriert: 27. Februar 2007 15:01

während endlos while schleife GUI nicht bedienbar

Beitrag von Beginner »

Hi,

ich hab ne endlos schleife, die eigentlich darauf warten soll, dass der Benutzer die checkbox false setzt.

Nun ist natürlich während der schleife die GUI nicht bedienbar, gibt es sowas wie bei basic GetEvents() oder so, das immer kurz die GUI wieder aktualisiert ?

MfG
Beginner
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ja, QCoreApplication::processEvents(...). Aber ich denke, daß das der falsche Ansatz ist. Die QCheckBox meldet normalerweise per Signal wenn der Status geändert wurde. Arbeite halt damit.
Beginner
Beiträge: 7
Registriert: 27. Februar 2007 15:01

Beitrag von Beginner »

hehe ja, wenn der user die checkbox noch klicken könnte ...
aber die GUI lässt sich ja erst nach ablauf der schleife wieder bedienen ...

bzw. frage zwar den status der checkbox jedes mal in der schleife ab, aber da der user sie nicht mehr bedienen kann ändert sich da nat. nix mehr
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

BITTE schau dir mal DAS essentielle System von Qt an:
Signals and Slots
Du brauchst keine while-Schleife mehr.
Und schau dir auch mal die Basic-Tutorials an, da kriegste für die ganze Materie auch gleich ein besseres Gespür.
Beginner
Beiträge: 7
Registriert: 27. Februar 2007 15:01

Beitrag von Beginner »

^^ ich kenne das prinzip von Signals und Slots ...

in der while schleife soll er nat. solange auch noch daten verarbeiten.

Ich könnte dafür nat. auch nen Thread nehmen ..

wobei ich da das problem hätte, kann ich aus dem Thread selbst Signals versenden?
weil ich müsste ein paar Grafiken parallel mit den aus der while schleife erstellten daten die ganze zeit weiter füttern ...

Edit: sprich es wär mir lieber kein Thread zu nehmen, damit ich weiter auf alle Qt Elemente zugreifen kann

Mal hier Beispielcode (hab ich leider aufm anderen rechner daher grob nachgebaut)

Code: Alles auswählen

int count = 1000000; 
float result;
for (unsigned short i = 0; i < count; i++)
	{
	result = process->next(i);
	graphic->paintNext(result);
	if ( cbStop->isChecked() ) break;
}
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

upsala hat das doch nun schon beantwortet... :roll:
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Beginner
Beiträge: 7
Registriert: 27. Februar 2007 15:01

Beitrag von Beginner »

war gerade noch joggen und muss erstma den anderen rechner und alles hochfahren ^^ werde ich gleich mal testen ... (weil er meinte wär der falsche ansatz dacht ich geht noch anders mal sehen)
Beginner
Beiträge: 7
Registriert: 27. Februar 2007 15:01

Beitrag von Beginner »

äh mhh wo muss ich das processEvents() den hinpacken? bzw. wie benutz ich das?
aus der ui.h file heraus hab ich ja kein zugriff auf die QApplication die in der main gestartet wurde...

und mir nen Pointer der Application in die Widget klasse dafür zu übergeben scheint mir komisch ...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Beginner
Beiträge: 7
Registriert: 27. Februar 2007 15:01

Beitrag von Beginner »

mhhh hat qApp irgendnen Namespace ?
es kam die Meldung qApp undeclared (first use this function)
(each undeclared identifier is reported only once for each function it appears in.)

habs danach noch mit std:: und Qt:: ..

Benutze zwar Qt 3.2 aber da gibt es die globale variable ja angeblich auch
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

qApp ist in qapplication.h definiert - aber warum in die Doku schauen und nachdenken wenn man hier eh alles vorgekaut bekommt?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten