0. 背景

最近在学习QtCreator(版本:4.8.1;编译器:MSVC 2017 64-bit),遇到了一些问题,特记录如下。(

1. 引用库

QtCreator可以直接包含Windows.h,但是没有默认引用User32.lib,所以需要在设置里面引用,步骤如下:

右键点击左边栏的项目名称,点添加库,之后跳出一个选择框。如果是像上面说的这种能够直接包含头文件的就选系统库,而对于网上下载下来的包括头文件和静态库文件的就选外部库。之后按说明填就行了。注意添加完之后,需要在程序中添加一行#pragma comment(lib,"User32.lib")才行。

2. 编码

QtCreator在编辑文件时通常用的是utf-8,然而msvc编译器认的是系统的编码,一般是gtk,所以会导致编译之后含有中文的字符串在命令行会变成“锟斤铐”,在窗口中则乱码。为此我们需要强制使编译器按utf-8编译,可在程序中添加一行#pragma execution_character_set("utf-8")

3. 命令行输出

通常qmake编译出来的程序一般是不带命令行的,我们可以在.pro文件中加入一行CONFIG += console改变这个设置,然后就可以用io函数了,IDE可以在底部“3 应用程序输出”处看到命令行输出的内容。注意:当在.pro文件中加入这句话后,以后如果想编译出不带命令行的程序,不仅需要删去这句话,还要额外加入CONFIG += console才行。

4. 资源文件

把程序中用到的图片等文件打包进程序的步骤如下:

在左边栏新建.qrc文件,然后添加前缀,注意这个前缀和资源的路径没有关系,它仅仅是为了增加可读性,因此是可以任取的。添加完前缀后添加资源文件。此时.pro文件中应该多出一句RESOURSES += XX.qrc。最后在程序中引用时,直接在路径字符串里写:前缀资源文件名即可。如前缀是/,资源是icon文件夹里的mouse.ico,那么字符串写:/mouse.ico

5. 程序图标

给程序设定图标步骤如下:

在左边栏新建一个空文件命名为icon.rc,然后在里面添加IDI_ICON1 ICON DISCARDABLE "mouse.ico"mouse.ico是你要的图标文件名,之后在.pro文件里添加一行RC_FILE += icon.rc,然后用release选项编译就能看到了。

6. 打包程序

编译出来的程序不能直接运行,需要处理依赖。Qt已经为我们提供了这个工具,只需在开始菜单中启动“Qt 5.12.1 (MSVC 2017 64-bit)”,然后cd到程序所在目录,之后输入命令windeployqt 程序名,它就会将程序的依赖复制到当前文件夹,然后尝试一下哪些是不需要的删除即可。

使用QtCreator遇到的一些问题的更多相关文章

  1. Ubuntu16.04 VTK7.1.0+QT4.8.6+QtCreator开发环境配置

    VTK需要OpenGL3.0或更高版本的驱动,但虚拟机下的Ubuntu不支持OpenGL3.0,或者自己按网上教程配置之后也能支持,但过程相当繁琐,本人试验失败. 最终决心采用双系统,装好之后,执行g ...

  2. ubuntu qtcreator 硬件权限问题

    在使用 qtcreator 在 ubuntu(debian.mint 等类同)下做开发时,常用到权限问题,无法直接操作硬件,比如串口等. 办法之一是使用 root 打开 creator,进而进行其他操 ...

  3. [Qt5] Develop openCV3 by QML on Qt-creator

    QML的酷炫控件,适合移动设备开发. qt-creator的跨平台是QML与opencv的粘合剂. 关键: QImage有若干种格式,转化为相应的Mat. Mat处理完后,还要正确得还原为原来格式的Q ...

  4. Terminal中输入命令直接打开QtCreator,以及创建其桌面快捷方式

    工业项目设计学习第一步,熟悉开发工具 Qt学习论坛,东西多,但也杂 emouse的博客,以前学习STM32开发环境搭建时也是参考这位博主的 更多详细的步骤在上面都能找到,今天先不写,等明天把硬件设备全 ...

  5. 解决 QtCreator 3.5(4.0)无法输入中文的问题

    解决 QtCreator 3.5.1无法输入中文的问题 [TOC] 环境是ubuntu 15.10 ubuntu软件源中下载安装的fctix-libs-qt5现在没有用,版本太旧了. 自己下载fcti ...

  6. linux下QtCreator无法输入中文的情况

    解决linux下QtCreator无法输入中文的情况 本文由乌合之众 lym瞎编,欢迎转载 blog.cnblogs.net/oloroso 本文由乌合之众 lym瞎编,欢迎转载 my.oschina ...

  7. QtCreator动态编译jsoncpp完美支持x86和arm平台

    如果是做嵌入式开发. 在Qt下支持JSon最好的办法,可能不是采用qjson这个库.QJson这个库的实例只提供了x86环境下的编译方法. Installing QJson-------------- ...

  8. VS2010 win7 QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0 ...

  9. 解决ubuntu14.04下Qt 5.3.1下的QtCreator fcitx,ibus不能输入中文

    http://my.oschina.net/u/219482/blog/341452 感谢作者 ubuntu 14.04从Qt官网下载的最新版qt,安装过程很顺利,但却发现没办法输入中文(我用的是 f ...

  10. Linux QtCreator设置mingw编译器生成windows程序

    Qt跨平台,那必须在Linux平台编译一个可以在windows下运行的Qt程序才行,当然还得和QtCreator环境弄在一起才行. 工作环境:Centos 7 yum install qt5-qt* ...

随机推荐

  1. filter()函数过滤序列

    ''' Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据 ...

  2. loadrunner安装负载机

    1,安装docker 2,下载最新版本的load_generator镜像,命令如下: docker pull hpsoftware/load_generator 3,load_generator镜像实 ...

  3. 【uni-app】uni.request二次封装,更好的管理api接口和使用

    前言 之前写了一个Vue.js的axios二次封装(点击跳转),这次是uni-app,uni-app是基于vue.js框架的,我觉得是很好用的一个框架,而且一套代码编译那么多平台,非常节省成本,当然, ...

  4. opencv Scalar

    template<typename _Tp> class Scalar_ : public Vec<_Tp, 4> { public: //! various construc ...

  5. Elasticsearch的query phase和fetch phase

    对于一次query查询到数据返回到客户端,经历了两个过程  query phase和fetch phase的过程 query phase 查询阶段     fetch phase 获取阶段. 1 qu ...

  6. 10TB级日志的秒级搜索

  7. -手写Spring注解版本&事务传播行为

    视频参考C:\Users\Administrator\Desktop\蚂蚁3期\[www.zxit8.com] 0018-(每特教育&每特学院&蚂蚁课堂)-3期-源码分析-手写Spri ...

  8. DOM-BOM-EVENT(6)

    6.BOM 6.1.什么是BOM? BOM(Browse Object Model),浏览器对象模型,没有相关标准,是约定俗成的东西,定义了一些操作浏览器的方法和属性,大部分方法都是通过window对 ...

  9. 表达式计算开源组件(NCalc.NetCore)

    首先,这款组件是开源的,NCalc是.net中的一个数学表达式求值程序.NCalc可以解析任何表达式并计算结果,包括静态或动态参数和自定义函数. 官网地址:http://ncalc.codeplex. ...

  10. 隐藏input的三种方法和区别

    一.<input type="hidden" />二.<input type="text" style="display:none& ...