qt常见问题汇总

本文介绍了在Qt编程中添加第三方库的两种方法,包括项目设置和.pro文件配置。同时,解释了如何在qt类中正确访问全局变量,避免与成员变量冲突。针对qDebug()编译错误和打印问题,提供了相应的解决办法,如确保包含头文件和正确处理QByteArray中的空格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

qt添加第三方库

有两种方式:
第一种,右键项目名称–添加库–外部库
在这里插入图片描述
第二种,在**.pro文件中添加库的头文件和库的动态编译选项

INCLUDEPATH += 头文件路径  // 头文件路径
LIBS+=-L库路径 -lcurses

qt类中访问全局变量

qt用系统类时定义的全局变量可能会跟类中的变量冲突,造成编译错误等,

C:\Users\CUI\Documents\untitled\mainwindow.cpp:22: error: invalid use of member 'int QWidget::x() const' (did you forget the '&' ?)
..\untitled\mainwindow.cpp:22:8: error: invalid use of member 'int QWidget::x() const' (did you forget the '&' ?)
     if(x == 5)
        ^

在这里插入图片描述
这里是定义了一个全局变量x,在类内访问时报错,
解决方式是前面加::,意思是访问外部变量,这样就不会报错了。

void MainWindow::on_pushButton_clicked()
{
    if(::x == 5)
    {
        qDebug()<<"haha";
    }
}

qt中qDebug()编译报错

缺少头文件

#include <QDebug>

qt中qDebug()打印"",即使有内容,也打不出来

QFile file(path);
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        msg+="open file failed";
        return false;
    }
    else {
        array =file.readAll();
        file.close();
    }
    qDebug()<<array;

此时qDebug()很可能什么也打印不出来,因为qDebug()打印遇到\0便会停止打印,qbytearray是字符数组,只要文档中有空格就会识别成\0,造成打印停止。
可以用qDebug()<<QString(array),即可显示内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值