QProgressDialog -> Signal canceled selber auswerten

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
Bang-Johansen
Beiträge: 43
Registriert: 11. Juli 2011 22:51

QProgressDialog -> Signal canceled selber auswerten

Beitrag von Bang-Johansen » 13. Oktober 2014 21:19

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

Bang-Johansen
Beiträge: 43
Registriert: 11. Juli 2011 22:51

Re: QProgressDialog -> Signal canceled selber auswerten

Beitrag von Bang-Johansen » 13. Oktober 2014 21:46

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

Christian81
Beiträge: 7313
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QProgressDialog -> Signal canceled selber auswerten

Beitrag von Christian81 » 13. Oktober 2014 21:47

Nein, ein connect() kannst du, wie jeden andere Funktion, überall aufrufen. Nur sollten die Pointer auch initialisiert sein ...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

Bang-Johansen
Beiträge: 43
Registriert: 11. Juli 2011 22:51

Re: QProgressDialog -> Signal canceled selber auswerten

Beitrag von Bang-Johansen » 13. Oktober 2014 21:51

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

Christian81
Beiträge: 7313
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QProgressDialog -> Signal canceled selber auswerten

Beitrag von Christian81 » 14. Oktober 2014 17:42

Ja, genau das habe ich gesagt.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

Bang-Johansen
Beiträge: 43
Registriert: 11. Juli 2011 22:51

Re: QProgressDialog -> Signal canceled selber auswerten

Beitrag von Bang-Johansen » 14. Oktober 2014 19:37

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

Christian81
Beiträge: 7313
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QProgressDialog -> Signal canceled selber auswerten

Beitrag von Christian81 » 14. Oktober 2014 21:57

Das ist C++ - wenn der Pointer noch nicht initialisiert ist wie sollte man dann damit irgend etwas anfangen können?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

Antworten