我有一個類'A',在這個類中有一個方法'method1()'和method1在qthread中運行。在method1中,我想調用MainWindow類中的函數,如下所示:'MainWindow window; window.func()」Qt線程調用函數
當我這樣做,我收到此錯誤信息:QObject的::的setParent:無法設置父,新的父是在不同的線程
這裏是我的代碼:
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()));
}
在這裏,在主窗口的功能:
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;
}
希望有人能幫助我