Anzeige:
Ergebnis 1 bis 4 von 4

Thema: QProgressDialog global ?

  1. #1
    Registrierter Benutzer
    Registriert seit
    24.08.2004
    Beiträge
    749

    QProgressDialog global ?

    Hallo,

    ich habe mehrere Funktionen die alle am QProgressDialog beteiligt sein sollten.

    Leider weiß ich nicht wie ich den dialog über mehrere Funktionen hinweg am leben halten soll...
    eigentlich muss ich ja den dialog global halten. Damit muss ich doch aber einen Pointer auf dem Heap alloziieren oder? Also mir bleibt nichts anderes übrig als:
    im header:
    Code:
     QProgressDialog *progress;
    und im cpp:
    Code:
     //dies geschieht in der ersten funktion damit der pointer 
     //global bleibt ??? 
     progress = new QProgressDialog(...);
    Ja und jetzt einfach in den anderen Funktionen nur über

    Code:
     progress->setValue(...)
    den neuen wert setzen???

    Das Problem ist das zerstören des Dialogs nach Ablauf. Da es ja ein Heap-Pointer ist und an das Parent gebunden ist - dieses aber Existent bleibt muss ich doch zwangsläufig nach dem fertigen Ablauf ein
    Code:
     delete progress;
    aufrufen?

    Kann mir jemand helfen und mich an die Wand klatschen wenn ich völlig falsch rangehe?

    Danke

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Es gibt normalerweise immer einen übergeordneten Block, im schlechtesten Falle die main() Funktion, aber normalerweise ein Hauptfenster oder ähnliches.

    Dort den Dialog anlegen und an alle Benutzer übergeben

    Edit: oder aus den Benutzern heraus den Progress mittels Signal nach außen leiten und an einer zentralen Stelle an den Dialog übergeben.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    24.08.2004
    Beiträge
    749
    mein problem ist dass ich den progress von klassenmethode zu klassenmethode übergeben müsste.
    also so:

    Code:
    QProgressDialog *prc = new QProgressDialog(...);
    Class1 *c = new Class1();
    
    ret = c->method1(prc);
    ret2 = c->method2(prc);

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Wie gesagt kannst du auch in Class1, sofern es ein QObject ist, ein Signal hinzufügen, daß du außerhalb mit dem QProgressDialog verbindest

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •