[solved] Fenster X nicht darstellen
[solved] Fenster X nicht darstellen
Hallo,
Ich habe eine kleine Anwendung mit 3 Fenstern programmiert.
Einem MainWindow, einem QDialog und einem QWidget.
Nun suche ich die Möglichkeit das Schließen der Fenster durch drücken von X (oben rechts) zu verhindern/unterbinden.
Ist dies möglich? - Wenn ja wie? - In den Eigenschaften im Designer habe ich leider nichts gefunden.
Gruß
mac
Ich habe eine kleine Anwendung mit 3 Fenstern programmiert.
Einem MainWindow, einem QDialog und einem QWidget.
Nun suche ich die Möglichkeit das Schließen der Fenster durch drücken von X (oben rechts) zu verhindern/unterbinden.
Ist dies möglich? - Wenn ja wie? - In den Eigenschaften im Designer habe ich leider nichts gefunden.
Gruß
mac
Zuletzt geändert von macpret am 5. April 2008 20:15, insgesamt 1-mal geändert.
I divided by NULL - Buuuuuh 
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
Gibt es keine andere/einfachere Möglichkeit?
Wenn nicht:
Wie mache ich dies denn?
Wie reimplementiere ich das closeEvent?
Also es wäre für mich halt auch ok, wenn ich die Aktionen die ausgeführt werden, wenn ich dieses X drücke verändern kann. Dazu müsste ich allerdings wissen, wo das closeEvent implementiert ist.
Ich danke bis hierher
Wenn nicht:
Wie mache ich dies denn?
Wie reimplementiere ich das closeEvent?
Also es wäre für mich halt auch ok, wenn ich die Aktionen die ausgeführt werden, wenn ich dieses X drücke verändern kann. Dazu müsste ich allerdings wissen, wo das closeEvent implementiert ist.
Ich danke bis hierher
I divided by NULL - Buuuuuh 
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
Ich habe ja auch nicht gesagt, dass ich gut c++ programmieren kann. Ich versuche es halt gerade zu lernen, habe aber leider gleichzeitig bereits ein Projekt für mein Studium in c++ zu erledigen - Daher meine Missere :-/
Also mit ableiten meinst du erben?
Sprich bei c++ mit dem ":"
also: class NeueKlasse : private/public AlteKlasse
und dort kann ich dann direkt die Funktion closeEvent erstellen und dort das hineinschreiben, was bei dem Event passieren soll?
Also mit ableiten meinst du erben?
Sprich bei c++ mit dem ":"
also: class NeueKlasse : private/public AlteKlasse
und dort kann ich dann direkt die Funktion closeEvent erstellen und dort das hineinschreiben, was bei dem Event passieren soll?
I divided by NULL - Buuuuuh 
Also ich habe nun so gemacht:
in der h-Datei:
und in der cpp-Datei habe ich folgendes hinzugefügt:
Wie du wahrscheinlich direkt sehen wirst ist es so falsch. Kannst du mir hierbei kurz unter die Arme helfen?
Danke
in der h-Datei:
Code: Alles auswählen
class DriveWindow: public QDialog, protected Ui_DriveWindow
{
friend class MainWindow;
Q_OBJECT
public:
DriveWindow(QWidget* parent = 0, int Language = 1);
virtual ~DriveWindow();
void closeEvent(QCloseEvent *);
};
Code: Alles auswählen
DriveWindow::closeEvent(QCloseEvent *)
{
//Hier erstmals nix tun
}
Danke
I divided by NULL - Buuuuuh 
Danke für die Wartezeit. Mit ein wenig Anstrengung ist es ja durchaus zu schaffen 
Lösung:
Die cpp-Datei musste noch korrigiert werden:
Wenn ich nun diesen ChangeModSlot nicht ausführe wird das Programm ganz normal beendet, wenn es ausgeführt wird, dann wechselt er wieder ganz normal den Modus, so wie es erwünscht ist.
Vielen Dank
Lösung:
Die cpp-Datei musste noch korrigiert werden:
Code: Alles auswählen
void DriveWindow::closeEvent(QCloseEvent *test)
{
cout << "DAS PROGRAMM WIRD BEENDET!!!";
DriveWindow::ChangeModSlot();
}
Vielen Dank
I divided by NULL - Buuuuuh 
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
1) Du solltest wirklich erst einmal C++ lernen bevor du mit einem Framework wie Qt rumhantierst. Zumindest die Grundkenntnisse solltest du haben..
2) Du kannst dein Posting editieren, Doppelpost ist nicht nowendig.
3) Ich versteh nich was das Friendly MainWindow dort soll.. Deine Klasse leitet von QDialog ab, welche wiederrum von QWidget ableitet in welcher die benötigte closeEvent Funktion vorhanden ist.
4) Hast du dir auch nur einmal die Dokumentation zu closeEvent angesehen? Dort ist eigentlich ganz eindeutig wie man das schließen verhindern kann..
2) Du kannst dein Posting editieren, Doppelpost ist nicht nowendig.
3) Ich versteh nich was das Friendly MainWindow dort soll.. Deine Klasse leitet von QDialog ab, welche wiederrum von QWidget ableitet in welcher die benötigte closeEvent Funktion vorhanden ist.
4) Hast du dir auch nur einmal die Dokumentation zu closeEvent angesehen? Dort ist eigentlich ganz eindeutig wie man das schließen verhindern kann..