目录
- 解决碰到的各种QT乱气八糟的问题
-
-
- 1.动态库与QT库命名冲突
- 2.多线程相关
- 3.Qt数组访问越界导致无法退出循环
- 4.unsign char\* 和 QString相互转换
- 5.槽函数没有响应
- 6.setProperty无法使用
- 7.vtable
- 8.键盘事件失去响应
- 9.布局添加控件,但是控件没有生效
- 10.加载图片程序崩溃
- 11.一个突然出现又突然消失的错误
- 12.无法添加`QComboBox`或`QCombox*`作为成员变量
- 13.Qt发布的程序输入框无法输入中文
- 14.如何让程序只能打开一次,不让程序重复打开
- 15.Ubuntu sudo 运行qt发布的程序无法使用输入法
- 16.自定义标题栏无法拖出屏幕可视区域
- 17.弹窗的按钮,没有hoverLeave事件
- 18.setGeometry()
- 19.设置父窗口不可点击
- 20.gl.h应该在glew.h后面
- 21.头文件循环包含
- 1.动态库与QT库命名冲突
-
解决碰到的各种QT乱气八糟的问题
1.动态库与QT库命名冲突
/home/robot/Qt5.13.0/5.13.0/gcc_64/include/QtGui/qopenglext.h:8591: error: expected primary-expression before ‘storagetype’ typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
解决方法:把相应的行给先注释掉,以后如果不好用,就再把注释去掉
2.多线程相关
* chaerview更新频率太高的话需要`QThread::msleep()`睡一会儿,不然就会导致崩溃<br/>
* `共享资源需要加锁才能访问,不然会出现很奇怪的问题;`该问题修改:尽量使用信号与槽<br/>
* `QProgressBar->setValue(0)莫名奇妙导致程序崩溃?setvalue()之前先加锁,问题解决了。。。`实际就是下面的问题,没有使用信号与槽导致出现一系列问题;
* 成员变量不要关联到其他的类的对象中,想要修改不同线程的成员变量,最好使用信号与槽
3.Qt数组访问越界导致无法退出循环
double *arr = new double[12]();
for (int i=0; i<14 i++){
double j=arr[i];
}
4.unsign char* 和 QString相互转换
//unsigned cahr* -> QString
unsigned char *str = "fdd" ;
char *str1 = (char *)str;
QString str2 = QString(QLatin1String(str1));
//QString -> unsigned char *
QString str = "fdd";
QByteArray ba = str.toLatin1();
unsigned char *