Also es ist so, dass ich mir mit dem Designer ne GUI zusammengeklickt und anschließend die entsprechenden Files generiert habe. Nun will ich in VC++ ein neues Projekt erzeugen und die Dateien dort mit integrieren. Um weiterhin Änderungen mit dem Designer machen zu können Programmiere ich die Slots in einer anderen Datei und überlade damit die automatisch erzeugten Fkt. Das hat den Sinn, dass ich jetzt mit den Designer zusätzliche Elemente einfügen und die Files neu erzeugen kann ohne das die bereits ausprogrammierten Fkt´s überschrieben werden.
Ich habe zahlreiche Fehler bereits beseitigt bekomme aber beim Linken noch folgende Fehlermeldung mit der ich nichts mehr anfangen kann.
.... das war der Anfang meiner letzten Frage um noch einmal den Hintergrund in den Kopf zu holen.
Nun ist es nämlich so, dass ich mit dem Designer kein Menu gebastelt bekomme und deshalb bin ich bei gegangen und habe in die Datei, welche die automatisch erzeugten Funktionen überschreibt, eines von Hand programmiert....
Noch gar nicht sehr aufwendig aber schon mit Fehlern. Hier mal der Code:
reader_gui_slots::reader_gui_slots( QWidget *parent,
const char *name,
bool modal,
WFlags fl)
: reader_gui( parent, name, modal, fl )
{
cs = new reader_connect_site;
menubar = new QMenuBar(this, "menubar");
datei_popup = new QPopupMenu();
bearbeiten_popup = new QPopupMenu();
ansicht_popup = new QPopupMenu();
hilfe_popup = new QPopupMenu();
datei_popup -> insertItem(tr("&Quit"),this,SLOT(quit_slot()));
bearbeiten_popup -> insertItem(tr("&Search"),this,SLOT(search_slot()));
menubar -> insertItem( tr( "&Datei" ), datei_popup );
menubar -> insertItem( tr( "&Bearbeiten" ), bearbeiten_popup);
menubar -> insertItem( tr( "&Ansicht" ), ansicht_popup);
menubar -> insertItem( tr( "Hilfe" ), hilfe_popup);
}
Immer wenn ich jetzt den Quitbutton(nicht der aus dem Menu!!!!!) mit dem reject() SLOT aufrufe gibt es einen Absturz der zwar auch das Prog beendet aber nicht so wie es soll. Habe alle möglichen Kombinationen versucht und nur wenn ich:
hilfe_popup = new QPopupMenu(); und folglich , hilfe_popup
nicht mit rein bringe, beendet sich das Programm noch normal.
Ich habe dann versucht einen neuen Slot(quit_slot) zu bauen, welcher mir das Prog vielleicht besser beendet(u.a. habe ich die erzeugten Objekte zerstört [ z.B. datei_popup = new QPopupMenu();] *verzweiflung*
void reader_gui_slots::quit_slot()
{
delete datei_popup;
delete bearbeiten_popup;
delete ansicht_popup;
delete hilfe_popup;
cs->exit(); //cs -> ist ein thread
delete cs;
delete menubar;
reject();
}
aber...
nun ist es so, dass zwar meine GUI wech ist aber die Konsole (ich will sie erst mal lassen aber wo ich gerade dabei bin, wie könnte ich sie weg bekommen?) sowie/bzw. das Prog bleiben offen.
Habe mein Glück mal mit quit() versucht aber das hat nirgends Erfolg. Kennt der Compiler nicht aber wieso? Wird doch überall beschrieben.
Sollte da jetzt noch einer durch steigen und mir helfen können wäre ich mal wieder auf ewig zu dank verpflichtet. gMario