Seite 1 von 1

QProgressDialog -> Signal canceled selber auswerten

Verfasst: 13. Oktober 2014 21:19
von Bang-Johansen
Hallo.

ich habe einen QProgressdialog:

.h Datei
QProgressDialog *UniversalDialog;

.c Datei

Code: Alles auswählen

void MainWindow::SlotUniversalDialogOpen (QString Name, QString Button,int min, int max)
    {
    UniversalDialog = new QProgressDialog(Name,Button, min, max);
    // solange Fenster offen, Hauptfenster im Hintergrund
    UniversalDialog->setWindowModality(Qt::WindowModal);
    UniversalDialog->setWindowTitle("Verarbeitung läuft");
    UniversalDialog->setGeometry(300,300,400,100);
    UniversalDialog->setFixedSize(400,100);
    UniversalDialog->show();
    }
Dieser kann über den Cancel Button abgebrochen werden.
Wenn er das wird, muß ich eine noch externe laufende Aktion abbrechen.
Daher habe ich versucht, den Cancel Button auf einen eignen Slot zu setzen, um dort halt tätig zu werden.
Aber irgendwie bekomme ich das Signal nicht an den Slot, und ich weiß nicht warum.

Code: Alles auswählen

connect	(UniversalDialog, SIGNAL (canceled ()), this, SLOT	(SlotUniversalDialogChancel()));
Meldung beim Programmstart:

QObject::connect: Cannot connect (null)::canceled () to MainWindow::SlotUniversalDialogChancel():

Doku meint:

void QProgressDialog::canceled() [signal]
This signal is emitted when the cancel button is clicked. It is connected to the cancel() slot by default.
See also wasCanceled().

Kann ich das Signal überhaupt mit einem eigenen Slot verbinden?
Wie kann dies lösen?

Danke Euch

Bang-Johannsen

Re: QProgressDialog -> Signal canceled selber auswerten

Verfasst: 13. Oktober 2014 21:46
von Bang-Johansen
Hallo,

habe meinen Fehler gefunden.

Ich habe den connect Befehl in einer anderen Methode aufgerufen.
Dachte, das geht.

Wenn ich in einer Methode ein Objekt erzeuge, dann kann ich nur in dieser Methode auch einen
möglichen connect Befehl dieses Objekts setzen, oder ?

Bang-Johannsen

Re: QProgressDialog -> Signal canceled selber auswerten

Verfasst: 13. Oktober 2014 21:47
von Christian81
Nein, ein connect() kannst du, wie jeden andere Funktion, überall aufrufen. Nur sollten die Pointer auch initialisiert sein ...

Re: QProgressDialog -> Signal canceled selber auswerten

Verfasst: 13. Oktober 2014 21:51
von Bang-Johansen
Christian81 hat geschrieben:Nein, ein connect() kannst du, wie jeden andere Funktion, überall aufrufen. Nur sollten die Pointer auch initialisiert sein ...
Hallo,

Danke für die Antwort.

Da das Fenster nur bei Bedarf aufgerufen wird, ist zum Zeitpunkt des connect Befehls noch kein Objekt angelegt.
Daher also mein Problem, oder?

Bang-Johannsen

Re: QProgressDialog -> Signal canceled selber auswerten

Verfasst: 14. Oktober 2014 17:42
von Christian81
Ja, genau das habe ich gesagt.

Re: QProgressDialog -> Signal canceled selber auswerten

Verfasst: 14. Oktober 2014 19:37
von Bang-Johansen
Hallo,

Danke für die Info.

Ich war bisher der falschen Ansicht, daß es kein Problem ist, weil das beim kompilieren durch den MOC sowieso
zusammengefaßt wird.

Bang-Johannsen

Re: QProgressDialog -> Signal canceled selber auswerten

Verfasst: 14. Oktober 2014 21:57
von Christian81
Das ist C++ - wenn der Pointer noch nicht initialisiert ist wie sollte man dann damit irgend etwas anfangen können?