QT 记录

Qt中的动态链接库编程(Q_DECL_IMPORT、Q_DECL_EXPORT)_FDWMin的博客-CSDN博客_q_decl_export

Bil.lib供Plugin项目和Test 项目引用,

Bil.dll将给Test.exe运行时动态加载。

Qt中pri文件介绍及使用


Qt基础学习(一)——.pro文件_simonXi-tech的博客-CSDN博客_.pro文件

——介绍
我们可以把 *.pro 文件内的一部分内容单独放到一个 *.pri 文件内,然后包含进来。使用的时候采用include引用即可。

DESTDIR:放置可执行程序目标的目录,比如:DESTDIR = /opt

DEFINES:应用程序所需的额外包含的预处理程序定义列表。

DEFINES += USE_MY_STUFF

然后可以在代码中使用:

#ifdef USE_MY_STUFF
    // TODO
#else
    // TODO
#endif

也就是通过指定USE_MY_STUFF这个宏就可以选择使用不同的动态链接库的版本。

.pro文件


Qt基础学习(一)——.pro文件_simonXi-tech的博客-CSDN博客_.pro文件

MOC_DIR:指定来自moc的所有中间文件放置的目录
OBJECTS_DIR:指定所有中间文件.o(.obj)放置的目录
RESOURCES:指定资源文件(qrc)的名称,例如,RESOURCES += \
mouse.qrc

CONFIG(debug,debug|release)

Qt编译debug和release版本--CONFIG(debug,debug|release)_风斜夜的博客-CSDN博客_qt编译debug

在pro文件里添加:

 
INCLUDEPATH += depend/opencv
INCLUDEPATH += depend/opencv2
 
debug {
LIBS += -lopencv_core2413d
}
release {
LIBS += -lopencv_highgui241
}

如果打开看项目生成的makefile文件,会发现Makefile.Debug和Makefile.Release都把opencv_core2413d和opencv_highgui241包含进来了。

因为CONFIG可以同时定义 debug 和 release,但只有一个处于active(当两个互斥的值出现时,最后设置的处于active状态),也就是虽然代码里最后是只有一个处于active,但release和debug都对上面的代码进行了处理。

debug 和 release 都能通过上面的测试时

解决方法:


CONFIG(debug,debug|release){
LIBS += -lopencv_core2413d
}
else{
LIBS += -lopencv_highgui241

对于 CONFIG(debug,debug|release) : 两个参数,

前者是要判断的active的选项,

后者是互斥的选项的一个集合 

//表示在 debug和release中选择,

若debug为active则生效,处理该选择下的代码 LIBS += -lopencv_core2413d ;

esle 则是release状态,执行其下的代码LIBS += -lopencv_highgui241

.pro关键字

QT Pro关键字 整理_zy_heu的博客-CSDN博客_qt关键字

Qt 之 pro 配置详解_一去丶二三里的博客-CSDN博客_dependpath

TEMPLATE:

项目模板,一般在创建时QtCreator会自动帮你写入对应的参数

app - 建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
lib - 建立一个库的makefile。
vcapp - 建立一个应用程序的Visual Studio项目文件。
vclib - 建立一个库的Visual Studio项目文件。
subdirs - 这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成                         makefile并且为它调用make的makefile。

               创建一个用于构建目标子目录的Makefile,子目录使用SUBDIRS变量指定。
“app”模板
“app”模板告诉qmake为建立一个应用程序生成一个makefile。当使用这个模板时,下面这些qmake系统变量是被承认的。你应该在你的.pro文件中使用它们来为你的应用程序指定特定信息。

win32 {    
DLLDESTDIR = $$BUILD_DIR/../../../HmiRunTimeBin
}

表示作用域

$$PWD的意思为当前目录

如pro文件中:INCLUDEPATH += $$PWD/lib/x64-win64
$$PWD表示的意思就是pro文件所在的目录。

foreach

Qt中foreach及QList的使用

Qt中foreach及QList的使用_做了不一定能实现但不做一定不会实现的博客-CSDN博客_qt遍历qlist

QList是一个最常用的容器类,用它定义一个对象通常是 
QList   <int>list;

其中int代表给定的类型,也就是说现在定义了一个有符号整形的容器,r然后给里面装值
list<<2<<3<<4<<6;

现在就可以使用foreach(int i,list)这样就可以遍历整个容器了
 

    QList <int>list;
    list <<2<<4<<1<<6;
    foreach(int str,list)
        qDebug()<<str<<endl;


C++中的foreach用法

C++中的foreach用法_leyou2018的博客-CSDN博客_c++ foreach用法

Qt foreach关键字用法(无师自通) (biancheng.net)

    QStringList listTemp;
    listTemp.append("aaa");
    listTemp.append("bbb");
    listTemp.append("ccc");

    QString strTemp1;
    QString strTemp2;

    foreach(strTemp1,listTemp)
    {
       strTemp2= strTemp1;
    }

以上代码中,listTemp会把自己的每个项,依次赋值给strTemp1。本例中,strTemp共有三项,foreach会循环三次,strTemp1在这三次循环中,依次被赋值“aaa”,“bbb”,“ccc”。
总结:foreach用来遍历list,可以在遍历中基于 list 的相应项做相应操作。
 

QStringList用法

QString 截取分割字符串 - 紫枫术河 - 博客园 (cnblogs.com)

使用 split() 函数对上述两个问题中的第二个进行求解:

1

2

3

QString str = "one, two* three / four / five ^ six";

QStringList sections = str.split(QRegExp("[,*/^]")); //把每一个块装进一个QStringList中

cout << sections.at(3).trimmed().toStdString() << endl;

QString str = "a#b#c";
QStringList list =str.split("#");//查找#符号,然后分离存入list。list: [ "a", "b", "c" ];
QStringList flieName=list.at(0),//就是取刚才存入的队列的字符,list.at(0)就是a。- -!

mid()函数

当position的下标值超出字符串长度时,返回null;

当从position开始的子串长度不够n或n为-1(缺省时的默认值也为-1),函数返回从position开始到结尾的子串。

  QString x = "Nine pineapples";
  QString y = x.mid(5, 4);            // y == "pine"
  QString z = x.mid(5);               // z == "pineapples"

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论

打赏作者

JamesSmith_JJ

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值