PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : QProcessDialog ohne Label??



Mat
27-07-2006, 15:09
Hallo,
mein ProcessDialog funktioniert schön. Aber das Label dass er anzeigen soll ist einfach nie drin enthalten: Ich benutze QT4.1.3

Hier mal der code ausschnitt für den dialog:
Es funktioniert weder so:


progress = new QProcessDialog("Dieser text wird nicht dargestelt...",0,min,max,*parent);
progress->show();


noch funktioniert es so:


progress = new QProcessDialog("*parent);
progress->setRagen(min,max);
QLabel* label = new QLabel(progress);
label->setText("Dieser Text wird nicht dargestellt...");
progress->setLabel(label);
progress->show();


laufen tuts natürlich ....nur eben ohne den Text...
Danke vielmals für Hilfe!!!

anda_skoa
28-07-2006, 14:22
Probier statt "0" besser QString() als Parameter für den CancelButtonText
Und "*parent"? Ist parent ein Pointer auf einen QWidget Pointer?

Ciao,
_

Mat
30-07-2006, 20:10
eh ne sorry, der stern soll da nicht sein :rolleyes: aber es funktioniert natürlich ohne stern auch net. Und egal ob ich QString verwende oder nicht...das label (und auch der cancel button) erscheinen nicht???

EDIT:
habe jetzt den dialog auf dem heap alloziieren lassen. Nachmeiner schleife lösche ich den Heap Platz NICHT und erst NACH der schleife erscheint dann das Label und der button...
das verstehe ich jetzt aber nicht...soll/muss ich denn in der schleife die ganze Zeit das label setzen lassen? und erst am ende der funktion ein delete progress machen?

anda_skoa
31-07-2006, 14:23
Kann die QEventLoop Event verarbeiten während du in der Schleife bist?
Also wenn es eine echte Schleife im Sinne von for oder while ist, rufst du processEvents auf?

Ciao,
_

Mat
31-07-2006, 18:35
nein ich rufe in meiner for schleife nicht events auf :cool: sollte ich das? also als beispiel ne stink normale for schleife
for(int i = 0; i < max; i++) { process->setValue(val); } sollte ich mit events arbeiten?
wenn ja weiß ich nicht genau wie denn ich im DOku Beispiel steht nur was von:


for (int i = 0; i < numFiles; i++) {
progress.setValue(i);
qApp->processEvents();

if (progress.wasCanceled())
break;
//... copy one file
}

anda_skoa
31-07-2006, 18:42
Eben, da steht


qApp->processEvents()


Wenn du Qt nicht erlaubst die GUI zu ändern, sich eine Änderung schwer auswirken :)

Ciao,
_

Mat
31-07-2006, 22:38
hmm aha....so gehts jetzt

hmm falls jemand Zeit und Lust hat zu erklären -> ich bin gern Ohr....ansonsten versuch ich mich durch die Doku zu kämpfen...:o

Danke