Errores comunes en Qt

Hay múltiples sobrecargas para funciones de señal o funciones de ranura.

Por ejemplo:

La función valueChanged () tiene dos sobrecargas, por lo que cuando usamos esta señal, necesitamos usar un puntero de función para apuntar explícitamente a una de las funciones. Por ejemplo:

void (QSpinBox:: *p)(int) = &QSpinBox::valueChanged;

 De esta manera, p apunta claramente a la función valueChanged cuyo parámetro es int. Esto no causará un error de conexión de ranura de señal.

No ejecutó qmake

A veces habrá algunos errores indefinidos o de referencia. En este momento puede que necesite hacer qmake. No habrá errores Por ejemplo, creé una nueva clase, esta clase no hereda de estas clases. Incluso si agrega la macro Q_OBJECT. Aún encontrará error: referencia indefinida a 'vtable for xxxx' al compilar. En este momento, necesita hacer qmake manualmente. Haga clic derecho en su proyecto y ejecute qmake.

 

La macro Q_OBJECT se escribe en el archivo CPP

Qt's moc procesará automáticamente el archivo de encabezado que contiene Q_OBJECT, y solo procesará el archivo de encabezado. Entonces escribiste Q_OBJECT en el archivo CPP. Puede encontrar un error de este tipo: "Se encontraron uno o más símbolos con varias definiciones". En Qt, no debe colocar la implementación de la función de la clase utilizando la biblioteca proporcionada por Qt en el archivo de encabezado. Esto también causará errores debido al procesamiento de moc.

 

242 artículos originales publicados · Me gusta 180 · Visitas 160,000+

Supongo que te gusta

Origin blog.csdn.net/zy010101/article/details/105422437
Recomendado
Clasificación