Moin zusammen,
vorab: Der Titel ist wenig aussagekräftig, ich weiß. Aber mir ist kein besserer eingefallen, es ist ein etwas verzwicktes Problem.
Folgendes Szenario:
Ich habe eine Klasse (Script), die unter anderem diese statische Funktion enthält:
Es ist eine Funktion, die eine Funktion der Klasse MainWindow aufrufen sollte. Nun das Problem:
Wenn ich das so schreibe, geht es natürlich nicht, newGraphic ist schließlich nicht statisch, daher muss es mit Objekt aufrufen werden.
Leider kann ich newGraphic nicht statisch machen, da es sozusagen this benötigt, um auf das ui einer Klasseninstanz von MainWindow zugreifen zu können.
Hierzu die Funktion:
Das Problem: ui bezieht sich auf this, das ist aber in einer statischen Funktion nicht verfügbar.
Ich brauche also irgendeine Möglichkeit von einer statischen Funktion heraus auf das ui zuzugreifen. Die Funktion in Script kann darf nicht einfach von MainWindow heraus aufgerufen werden.
Ich muss irgendwie aus dem statischen raus, um auf ui zugreifen zu können.
Hat irgendjemand eine Idee, wie ich aus diesem Dilemma rauskomme?
Vielen Dank!
Gruß,
badday
vorab: Der Titel ist wenig aussagekräftig, ich weiß. Aber mir ist kein besserer eingefallen, es ist ein etwas verzwicktes Problem.
Folgendes Szenario:
Ich habe eine Klasse (Script), die unter anderem diese statische Funktion enthält:
Code:
static int l_pushButton ( lua_State *L)
{
int row = lua_tonumber(L, 1);
int column = lua_tonumber(L, 2);
QString label = lua_tostring(L, 3);
MainWindow::newGrapic(1 , label, row, column); //natürlich falsch
return 0;
}
Wenn ich das so schreibe, geht es natürlich nicht, newGraphic ist schließlich nicht statisch, daher muss es mit Objekt aufrufen werden.
Leider kann ich newGraphic nicht statisch machen, da es sozusagen this benötigt, um auf das ui einer Klasseninstanz von MainWindow zugreifen zu können.
Hierzu die Funktion:
Code:
void MainWindow::newGrapic(int what, QString label, int row, int column)
{
switch (what)
{
case 1:
QPushButton *button = new QPushButton(label, this);
ui->gridLayout->addWidget(button, row, column, Qt::AlignLeft ); //hier
}
}
Ich brauche also irgendeine Möglichkeit von einer statischen Funktion heraus auf das ui zuzugreifen. Die Funktion in Script kann darf nicht einfach von MainWindow heraus aufgerufen werden.
Ich muss irgendwie aus dem statischen raus, um auf ui zugreifen zu können.
Hat irgendjemand eine Idee, wie ich aus diesem Dilemma rauskomme?

Vielen Dank!
Gruß,
badday