Seite 1 von 1
SLOTS funktionieren nicht (Menübar actions nicht ausgeführt)
Verfasst: 30. Januar 2009 15:36
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 ?
Verfasst: 30. Januar 2009 16:02
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?
Verfasst: 30. Januar 2009 16:35
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

Verfasst: 30. Januar 2009 18:31
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......?
Verfasst: 1. Februar 2009 00:48
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.
Verfasst: 1. Februar 2009 00:51
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 ???
Verfasst: 1. Februar 2009 08:30
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?
Verfasst: 1. Februar 2009 13:31
von Mr.Undercover
ja die habe ich auch gesehen und ausprobiert, leider hat das nicht viel gebracht....
Verfasst: 1. Februar 2009 14:59
von Mr.Undercover
... Hab das problem gelöst, hatte paar sachen zuviel gemacht! Nun funktioniert alles.... thanks für den Support!