¿Qué debo hacer si el programa Qt connect se cierra de forma anormal?
1. Antes de usar un puntero, es necesario juzgar si el puntero es NULL. Si es NULL y el puntero se usa directamente, terminará de manera anormal. Por ejemplo, en QTableView:
QStandardItemModel *model = new QStandardItemModel
model-gt; item(0, 1)-gt()
unidad Sin editar, cuando se usa model-gt;item(0,1)-gt;text() directamente, el programa terminará de manera anormal.
2. Después de agregar el código de eliminación en el destructor para liberar la memoria y cerrar la aplicación Qt, el programa finalizará de manera anormal. No hay problema para eliminar el código de eliminación en el destructor. Agregué una clase de interfaz de diseñador Qt adicional que hereda de QTableView a mi proyecto y cambié QTableView al nombre de la clase que agregué en el código fuente ui_widget.h de la interfaz widget.ui. En el archivo cpp de la clase recién creada, comente
,ui(new Ui::CTblView);
uii-gt;setupUi(this);
Dos líneas, pero no comentadas
Eliminar ui;
El motivo es el mismo que el primer punto, la interfaz de usuario está definida pero no se usa. No se utiliza, por lo que el programa finaliza de forma anormal. También puedes comentar esta línea para que funcione.
3. El objeto puntero no tiene una instancia en la referencia
Por ejemplo:
Dialog *d; d = new Dialog; ); si olvida crear una instancia de la segunda línea, también hará que el programa Qt finalice de manera anormal.