I have a Class 'A' and in this class there is a method 'method1()' and method1 run in a qthread. In method1 I'd like to call a function in the MainWindow class like this: 'MainWindow window; window.func()'
When I do this i get this error message: QObject::setParent: Cannot set parent, new parent is in a different thread
Here is my Code:
void gCode_int::parse_File(char* gCode_file, int file_length,MainWindow *window)
{
window->fahre_on_pos(NULL,atoi(x_pos.c_str()),atoi(y_pos.c_str()));
}
Here the function in MainWindow:
void MainWindow::fahre_on_pos(char* g_command ,int x_pos, int y_pos)
{
double y_schritte;
double x_schritte;
int j = 1;
int x_length = x_pos-x_pos_old;
int y_length = y_pos-y_pos_old;
digitalWrite(x_treiber,1);
digitalWrite(y_treiber,1);
if(x_length > 0)
{
digitalWrite(x_richtung, 1);
}
if(x_length <= 0)
{
digitalWrite(x_richtung,0);
x_length *= -1;
}
if(y_length > 0)
{
digitalWrite(y_richtung, 0);
}
if(y_length < 0)
{
digitalWrite(y_richtung,1);
y_length *= -1;
}
y_schritte = round((y_length/1.25)*48);
if(y_schritte == 0)
{
y_schritte =1;
digitalWrite(y_treiber,0);
}
if(x_schritte == 0)
digitalWrite(x_treiber,0);
x_schritte = round(((x_length/1.25)*200)/y_schritte);
while(j <= y_schritte)
{
for(int i=1;i<= x_schritte;i++)
{
digitalWrite(x_v, 1);
delay(1);
digitalWrite(x_v, 0);
delay(1);
}
if(x_schritte == 0)
{
digitalWrite(y_v, 1);
delay(4);
digitalWrite(y_v, 0);
delay(4);
}
else
{
digitalWrite(y_v, 1);
delay(1);
digitalWrite(y_v, 0);
delay(1);
}
j++;
}
x_pos_old = x_pos;
y_pos_old = y_pos;
}
Hope anybody can help me