SLOTS funktionieren nicht (Menübar actions nicht ausgeführt)

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
Mr.Undercover
Beiträge: 68
Registriert: 28. Oktober 2008 23:44

SLOTS funktionieren nicht (Menübar actions nicht ausgeführt)

Beitrag von Mr.Undercover »

Hallo alle zusammen,

ich habe etwas mit den QT designer gemalt nun möchte ich den Menübar mit Methoden hinterlegen. (z.B.: bei einem click auf action schließt das programm, oder click auf info gibt infos zu software zurück!)

ich habe es mal so versucht gehabt:

header:
private slots:

//Menübar
void createAction();

source:
//Konstruktor
Tool::Tool(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{

ui.setupUi(this);
createAction();
}
.
.
.
void Tool::createAction()
{

ui.actionExit = new QAction(tr("E&xit"), this);
ui.actionExit->setShortcut(tr("Ctrl+Q"));
connect(ui.actionExit, SIGNAL(triggered()), this, SLOT(close()));

}

Ich kriege zwar keine Fehlermeldung, aber der action funktioniert irgendwie nicht ? Kann mir mal jemand unter die Arme greifen ?
----------------------------------------------------------

Ich bedanke mich im voraus für eure Mühe...

MfG
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

1. : was genau sollen dies Doppelposts bewirken... (http://www.qtforum.de/forum/viewtopic.php?t=8275)

2. : Man sollte schon verstanden haben, was man da in den Editor hackt.. Deshalb die Frage zurueck: was genau ist ein "QAction"? Wie werden diese Actions laut der Doku (http://doc.trolltech.com/4.4/qaction.html#details) eingesetzt?
Mr.Undercover
Beiträge: 68
Registriert: 28. Oktober 2008 23:44

Beitrag von Mr.Undercover »

Hab beim QT assistant nachgeschaut....

In applications many common commands can be invoked via menus, toolbar buttons, and keyboard shortcuts. Since the user expects each command to be performed in the same way, regardless of the user interface used, it is useful to represent each command as an action.

... Aber es ist doch dann richtig ? verstehe nur noch bahnhof :(
----------------------------------------------------------

Ich bedanke mich im voraus für eure Mühe...

MfG
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Genau.. und was steht da weiter unten im Samplecode? Wie lautet der Beispielcode in der Doku? Und wo liegt der Unterschied zu deinem......?
Mr.Undercover
Beiträge: 68
Registriert: 28. Oktober 2008 23:44

Beitrag von Mr.Undercover »

Ok ich habe gemerkt, was da gefehlt hat... Die ganzen Zeiger! Nun habe ich das zwar drinne aber ich kriege jetzt eine sehr sehr seltsame Meldung mit den ich nichts anfangen kann...

Also mein Quellcode sieht nun folgendermaßen aus:
header:
private:
Ui::ToolClass ui;

void createAction();
void createMenus();

QMenu *fileMenu;
QAction *actionExit;

source:
Tool::Tool(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{

ui.setupUi(this);
createAction();
createMenus();
}

....

void Tool::createAction()
{
ui.actionExit = new QAction(tr("E&xit"), this);
ui.actionExit->setShortcut(tr("Ctrl+Q"));
connect(ui.actionExit, SIGNAL(triggered()), this, SLOT(close()));
}

void Tool::createMenus(){
QMenu *fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(actionExit);
}

....

Fehlermeldung bei Realese:
Unhandled exception at 0x650476ff in Tool.exe: 0xC0000005: Access violation reading location 0x00000003.
----------------------------------------------------------

Ich bedanke mich im voraus für eure Mühe...

MfG
Mr.Undercover
Beiträge: 68
Registriert: 28. Oktober 2008 23:44

Beitrag von Mr.Undercover »

fehlermeldung beim debugging:

A buffer overrun has occurred in Tool.exe which has corrupted the program's internal state. Press Break to debug the program or Continue to terminate the program.

For more details please see Help topic 'How to debug Buffer Overrun Issues'.

reicht mein Arbeistspeicher nicht mehr aus ???
----------------------------------------------------------

Ich bedanke mich im voraus für eure Mühe...

MfG
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ob dein Arbeitsspeicher nicht ausreicht, hättest du selbst rausfinden können. Im übrigen wird dir in der Fehlermeldung eine Hilfe angeboten, hast du dir diese durchgelesen?
Mr.Undercover
Beiträge: 68
Registriert: 28. Oktober 2008 23:44

Beitrag von Mr.Undercover »

ja die habe ich auch gesehen und ausprobiert, leider hat das nicht viel gebracht....
----------------------------------------------------------

Ich bedanke mich im voraus für eure Mühe...

MfG
Mr.Undercover
Beiträge: 68
Registriert: 28. Oktober 2008 23:44

Beitrag von Mr.Undercover »

... Hab das problem gelöst, hatte paar sachen zuviel gemacht! Nun funktioniert alles.... thanks für den Support!
----------------------------------------------------------

Ich bedanke mich im voraus für eure Mühe...

MfG
Antworten