Qt5学习笔记之零碎问题记录

0. 概述

本篇文章主要是记录Qt学习过程中遇到的一些小问题和解决方法,希望以后遇到问题能有一个参考。尽可能只记录遇到的问题,避免无脑堆积。持续更新,同一类话题的内容逐渐变多时,就拿出去自成一篇。

1.qDebug输出问题

1.1 qDebug() << "OK"报错

qDebug可以当成printf使用,但无法当成cout使用:

    qDebug("OK");
    qDebug() << "OK";

使用第一句可以正常输出,而使用第二种方式,报错:

error: invalid use of incomplete type 'class QDebug'
     qDebug() << "OK";
            ^

这是因为需要添加头文件:

#include <QDebug>

1.2 qDebug打印QString类型

在制作bin文件合成工具时,希望打印路径信息:

    QString path = QFileDialog::getOpenFileName(this,
        tr("Open File"),//控件的objectName
         ".",           //对话框显示时默认打开的目录,"." 代表程序运行目录
        tr("Bin Files(*.bin)"));   //对话框的后缀名过滤器,将txt文件改为bin文件。
    
    qDebug("path = " + path.toLatin1());
    qDebug("path = %s",qPrintable(path));

这里记录两种方法,在帮助中查看说明如下:
在这里插入图片描述
在这里插入图片描述

2.QString字符串的裁剪、格式化、int互转

内容逐渐变多,查阅不便,单独列为一篇:Qt5学习笔记之QString的使用

3.修改UI文件后编译未同步

修改UI文件后,编译发现没生效。仍然按照旧的组件进行编译,并提示错误信息。这种情况下重新编译即可。
在这里插入图片描述

4.移动工程后,仍在默认路径编译

1.进入到我们的工程目录下,找到xxx.pro.user文件后直接删除:
在这里插入图片描述
2.双击xxx.pro文件打开工程,这时会发现无法编译。我们根据提示单击项目管理:
在这里插入图片描述
3.继续单击
在这里插入图片描述
4.这时我们的工程就又能编译了。编译试一下,发现在我们新的目录下生成文件。

5. windows安装qt5.12

官网下载后,直接安装就可以了,安装过程中选择一下组件:
在这里插入图片描述
安装完成后版本信息如下:
在这里插入图片描述
参考链接:Qt5.12安装教程

ubuntu20.04安装qt5.12

参考链接:添加链接描述

下载安装

链接博客内的清华镜像没有找到5.12版本,我直接在官网下载的。

sudo chmod +x qt-opensource-linux-x64-5.12.2.run
sudo ./qt-opensource-linux-x64-5.12.2.run

下面贴几张图,主要是记录下安装过程中的路径、选择组件信息。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

配置测试

1.安装 g++

sudo apt-get install g++

2.安装 openGL 库

sudo apt-get install mesa-common-dev

3.添加环境路径

gedit ~/.bashrc
在文档末尾添加
export PATH=/opt/Qt5.12.9/Tools/QtCreator/bin:$PATH

在这里插入图片描述
终端启动Qt失败?
在这里插入图片描述
通过活动搜索打开qt,能够正常编译官方示例在这里插入图片描述
这里要新建个工程文件夹,否则都生成在主目录下:
在这里插入图片描述

6. windows下Qt打开后未响应

早上忽然发现Qt打开后持续未响应,重试了几次包括重启笔记本都不能解决,昨晚使用还是正常的。搜索了下,最终关闭有道词典,再使用Qt则正常。

关闭有道词典:Qt和有道词典有冲突,使用Qt的时候打开有道词典很容易发生Qt卡死(添加链接描述)。

7. ubuntu下编译报错QString: No such file or directory

在windows下是可以编译运行的,放到ubuntu20.04编译结果报错了:
在这里插入图片描述
windows下也是有警告的,non-portable path to file ‘<qstring.h>‘; specified path differs in case from file name on disk。只是没有注意:
在这里插入图片描述
改为#include <QString>,不带.h。或者改为全小写#include <qstring>
则在windows和ubuntu都能够编译运行。

8 文件操作

重命名:QFile::rename(source_path, finally_path);
从现象上看,可能是创建了一个新文件+拷贝+删除旧文件。不等同于鼠标双击,直接改后缀。

指定编码为UTF-8。在制作just_soso工具时,.c源文件是UTF-8编码,默认是ANSI编码读取,这就导致注释变为乱码。指定以UTF-8编码格式读取

    QTextStream in(&file);
    in.setCodec("UTF-8"); // 设置文件的编码格式为UTF-8
    QString line;

    line = in.readLine();//读取一行放到字符串里
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值