Dann habe ich im Projekt Explorer mit der rechten Maustaste den Menüpunkt Dialoge angeklickt und aus dem Kontextmenü Neues Element hinzufügen ausgewählt. Ich benötige einen neuen Dialog und habe die Datei infodlg.ui genannt. Im folgenden Widget habe ich QDialog ausgewählt.
Dann habe ich im Projekt Explorer unter Dialoge die ui/infodlg.ui markiert und und mit der rechten Maustaste aus dem Kontextmenu den Menüpunkt Dialog Implementierung aufgerufen um eine neue Klasse zu implementieren. Die vorgeschlagenen Dateinamen habe ich übernommen, der Klassenname ist DialogImpl und der Dateiname dialogimpl. Im folgenden Dialog Ableiten von Qt-Designer-Formularen habe ich den Button Erstellen angeklickt, worauf die Headerdatei dialogimpl.h und die Qellcode Datei dialogimp.cpp erstellt und zum Projekt hinzugefügt wurde.
Jetzt includiere ich die #include "ui_infodlg.h" in der mainwindowimpl.cpp und füge folgenden Code in der mainwindow imp.cpp hinzu:
Code: Alles auswählen
void MainWindowImpl::on_action_ber_RG_Text_triggered()
{
// Dialog ableiten
QDialog *infodlg = new QDialog;
// Aufruf durch den in dem Formular vergebenen Klassennamen
Ui::Dialog ui;
ui.setupUi(infodlg);
infodlg->show();
infodlg->exec();
}
Jetzt öffne ich den neuen Dialog infodlg.ui im Designer und entferne das Label und die Buttonbox, weil ich jetzt einen eigenen Pushbutton erstellen will. Ich füge einen Pushbutton hinzu und beschrifte ihn mit Beenden. Den Objectnamen des Pushbutton ändere ich auf pb_beenden und speichere ab und verlasse den Designer.
So, im Qdevelop zurück markiere ich im Objektexplorer unter Dialoge die ui/infodlg.ui und wähle aus dem Kontextmenu wieder Dialogimplementierung. Dann wähle ich on_pb_beenden_clicked() und klicke aktualisieren. Er erzeugt eine Auto Connection wo ich in der Datei dialogimpl.cpp folgenden Code einfüge:
Code: Alles auswählen
void DialogImpl::on_pb_beenden_clicked()
{
close();
}
Aber wenn ich den Pushbutton im Neuen Dialog anklicke, passiert nichts, das Widget sollte ja geschlossen werden. Irgendwo habe ich da einen Denkfehler. Bis zu diesem Punkt habe ich mir alles selbst erarbeitet, weil ich einen kleinen Tutor zur Einführung schreiben will, damit es Umsteiger von Delphi (wie ich) es in Zukunft etwas einfacher haben. Was mache ich falsch ?
Ich habe schon stundenlang im Assistanten gelesen und mir Beispielcode angeschaut, gegoogelt, ich finde den Fehler nicht weil, es wohl ein Denkfehler von mir ist. Irgendwas habe ich nicht richtig verstanden. Ich möchte den Qdevelop weiter benutzen, weil ich damit zufrieden bin.
ralli