Seite 1 von 1

[gelöst]Zugriff auf Slot des QMainWindows von Childklasse

Verfasst: 1. Juni 2011 17:59
von redbulls
Hi, ich habe eine Frage.
In meinem Programm habe ich ein QMainWindow mit einem QTabWidget.
In diesem TabWidget befindet sich ein QWidget mit ein paar Buttons. Das QWidget ist in meinem Programm eine eigene Klasse.
Das QMainWindow nimmt also ein Objekt dieser Klasse auf.
Das QMainWindow ist also der parent vom Objekt. Wie kann ich jetzt das Signal, das ein Button des Widget-Objektes auslöst mit einem Slot des QMainWindows connecten?

danke für die hilfe

Verfasst: 1. Juni 2011 21:08
von Wumpi
Wenn das QWidget-Objekt Member von den QMainWindow-Klasse ist, denke ich, dass es so funktioniert:

In der QMainWindow-Klasse:

Code: Alles auswählen

connect(WidgetName.button, SIGNAL(clicked()), this, SLOT(buttonClicked()));

Verfasst: 2. Juni 2011 14:09
von redbulls
Ok danke :D,
das heißt ich muss das connect in der QMainWindow Klasse herstellen.
Kann ich die Verbindung nicht innerhalb des QWidget Objekts herstellen?

Verfasst: 2. Juni 2011 15:54
von Christian81
Wenn dort der Pointer bekannt ist, ja -> C++ Grundlagen würde ich sagen ...

Verfasst: 3. Juni 2011 09:14
von redbulls
Der Pointer ist bekannt. Ist ja das parent, aber leider komm ich darüber nicht zu dem Slot.

Verfasst: 3. Juni 2011 10:43
von Christian81
Was ist mit 'aber leider komm ich darüber nicht zu dem Slot.' gemeint?? Ein wenig genauer bzw. Code würde helfen...

Verfasst: 3. Juni 2011 10:43
von redbulls
Ich hab schon eine Lösung.
Ist ja kein Problem das so zu machen oder?

Code: Alles auswählen

    MainWindow* mainwindow = dynamic_cast<MainWindow*> (this->parentWidget());
    ui->setupUi(this);
    connect(ui->tbAnd,SIGNAL(clicked()),mainwindow,SLOT(getAndTab()));

Verfasst: 3. Juni 2011 10:49
von Christian81
Abgesehen davon dass der cast unnötig ist, ja.

Verfasst: 3. Juni 2011 10:51
von redbulls
dankesehr für die Hilfen!
:D