问题:使用QT时,由于在其他文件当中也有操作UI的情况,所以不得已在其他文件当中包含#include "ui_mainwindow.h"这个UI的头文件,当在UI当中的控件点击转到槽时就会报错
原因是我在qt当中使用了线程,在使用线程的过程中还处理了数据库,但是qsql不能在多个线程对象中创建处理qsql对象,否则就会报错,qsql在多个线程中使用暂时不知道有什么其他的解决方式,所以导致我数据库查询时只能在一条主线程给一个死循环当中处理,查询到的数据还要写到UI表格控件当中,其实每查询一条数据应该是可以使用一个信号给主线程的,然后主线程可以将信号传递的数据来处理UI,但是我比较懒,不太想这么做,于是就qsql对象当中直接处理UI,所以不得已包含了UI的头文件,然后就出现了在后续的使用过程中,转到槽就报这个错误。
解决:所有的UI处理都尽量放在主线程当中处理,最好不要像我一样在其他对象当中也操作UI,方式也简单,将其他文件的#include "ui_mainwindow.h"都注释掉就可以了