Seite 1 von 1

Neues Fenster von der Menüleiste aus öffnen

Verfasst: 19. September 2012 17:40
von mmuuuuhh
Hi,

ich habe gerade erst mit Qt Programmierung angefangen.

Mit Hilfe eines Buchs habe ich es geschafft ein Fenster mit einer Menüleiste und untermenüs zu erzeugen.
Wie schaffe ich es aber, per klick auf ein Untermenü ein neues Fenster zu öffnen?

Hier mein Quellcode:

MyWindow.h

Code: Alles auswählen

#ifndef MyWindow_H
#define MyWindow_H

#include <QWidget>
#include <QMainWindow>


class MyWindow : public QMainWindow {
     Q_OBJECT
public:
     MyWindow( QMainWindow *parent = 0,
               Qt::WindowFlags flags = 0 );
//public slots:
//     void foo();
};
#endif

Und MyWindow.cpp

Code: Alles auswählen

#include "MyWindow.h"
#include <QApplication>
#include <QMenu>
#include <QMenuBar>
#include <QLabel>


MyWindow::MyWindow( QMainWindow *parent,
                    Qt::WindowFlags flags ) :


    QMainWindow(parent, flags)  {



    resize(400, 400);
    setWindowTitle("Hausaufgabe");

    QMenu *fileMenu = new QMenu(tr("&Einziger Knopf"), this);
    menuBar()->addMenu(fileMenu);


    fileMenu->addAction(
                QIcon(),
                tr("&Foo"),
                this,
                0,
           //     SLOT(foo()),
                QKeySequence(tr("F"))
                );



    fileMenu->addAction(
                QIcon(),
                tr("&Bar"),
                this,
                0,
                QKeySequence(tr("B"))
                );


    fileMenu->addAction(
                QIcon(),
                tr("Ba&z"),
                this,
                0,
                QKeySequence(tr("Z"))
                );

    fileMenu->addSeparator();

    fileMenu->addAction(
                QIcon(),
                tr("Beenden"),
                qApp,
                SLOT(quit()),
                QKeySequence(tr("X"))
                );
}
Ich vermute es geht über SLOTs - aber wie ist mir nicht so ganz klar :)

Re: Neues Fenster von der Menüleiste aus öffnen

Verfasst: 19. September 2012 18:36
von Christian81
Hier mal bitte durchlesen und bei Fragen stehen wir gerne Rede und Antwort: http://qt-project.org/doc/qt-5.0/signalsandslots.html

Re: Neues Fenster von der Menüleiste aus öffnen

Verfasst: 19. September 2012 18:48
von mmuuuuhh
Ich hab's durchgelsen, ebenso wie das Kapitel in meinem Buch, und auch diese Tutorials habe ich gemacht: http://qt-project.org/videos/watch/fund ... t-part-2-3

Mir ist das Prinzip auch völlig klar, nur mit der Menüleiste kann ich es nicht in Zusammenhang bringen...

Das einzige was mir hier verdächtig vorkommt ist das SLOT() - aber wie ich damit ein neues Fenster öffne versteh ich einfach nicht...

Re: Neues Fenster von der Menüleiste aus öffnen

Verfasst: 21. September 2012 16:09
von Christian81
addAction() gibt eine QAction zurück. QAction hat ein Signal triggered() welches Du mit einem selbstdefinierten Slot im MyWindow verbinden kannst.