Hm, das ist aber auch wieder ein Problem... Weil wenn ich die aufzurufende Funktion als pucblic Slot von mainwindow mache, bekomme ich sie nicht mit dem connect-dingens aufgerufen (auch wenn ich da den zeiger der klasseninstanz anstelle von this schreibe)...
Wenn ich die Funktion als public slot von dem dialog mache, also einfach, dass beim klicken auf den button, eine function von der selben klasse aufgerufen wird, dann bekomme ich innerhalb der Funktion nicht die Funktion der anderen Klasse aufgerufen, weil eine FUnktion nicht ohne die Instanz ihrer Elternklasse existieren kann...
Was mache ich falsch?
Die main.cpp:
Code: Alles auswählen
#include <QApplication>
#include "mainwindow.h"
#include "dialog_minadd.h"
using namespace std;
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
mainwindow *window = new mainwindow;
window->show();
return app.exec();
}
Die mainwindow.cpp, die Hauptdatei:
Code: Alles auswählen
#include <QtGui>
#include <QDialog>
#include <QDir>
#include "mainwindow.h"
#include "dialog_minadd.h"
mainwindow::mainwindow() {
setupUi(this);
connect(button_minhinzu,SIGNAL(clicked()),this,SLOT(launchminadd()));
table_min->setRowCount(0);
}
dialogminadd::dialogminadd() {
setupUi(this);
connect(button_minaddabort,SIGNAL(clicked()),this,SLOT(close()));
connect(button_minaddfinal,SIGNAL(clicked()),mainwindow,SLOT(launchsetaddmin()));
connect(button_minaddfinal,SIGNAL(clicked()),this,SLOT(close()));
}
void mainwindow::launchminadd() {
dialogminadd *minadd_show = new dialogminadd;
minadd_show->show();
}
void mainwindow::launchsetaddmin() {
QString vornameinput = "Test";
QString nachnameinput = "Text";
setaddmin(vornameinput, nachnameinput, 5, 5);
}
void mainwindow::setaddmin(QString vorname, QString nachname, int alter, int gruppe) {
label->setText("Test Generator");
table_min->setRowCount(0);
QTableWidgetItem *vornameitem = new QTableWidgetItem(vorname);
QTableWidgetItem *nachnameitem = new QTableWidgetItem(nachname);
QTableWidgetItem *alteritem = new QTableWidgetItem(alter);
QTableWidgetItem *gruppeitem = new QTableWidgetItem(gruppe);
int row = table_min->rowCount();
table_min->insertRow(row);
table_min->setItem(row, 0, vornameitem);
table_min->setItem(row, 1, nachnameitem);
table_min->setItem(row, 2, alteritem);
table_min->setItem(row, 3, gruppeitem);
}