Qt入门

TOC

Qt/Qt Creator的基本知识

背景知识

在使用Qt Creator之前,我们最好了解以下关于LINUX和QT的基础内容,以便快速定位问题,找到解决方案。
这里推荐以下电子书,重点看3.3Linux编程基础。:
参考1:https://wizardforcel.gitbooks.io/wudi-qt4/
虽然这本书是以Qt4为对象介绍的,但基本的原理与后续版本中有很多相通的地方。另外,还有一本不错的电子书,重点看其中的1.4.3 “Qt开发环境目录结构”,弄清楚安装的Qt目录结构及作用。1.4.4“Qt开发环境脚本”,面对多版本Qt时编写脚本,配置环境变量:
参考2:https://qtguide.ustclug.org/
关于Qt和QtCreator的关系和必须掌握的基本操作比较好的文章有:
参考3:https://www.cnblogs.com/xia-weiwen/p/10074882.html

安装

Qt的Windows的安装和Linux安装在网上资料都非常多,建议在官网上下载可执行文件后安装,较友好方便。具体可以参考下面的链接:
https://blog.csdn.net/dosthing/article/details/80303102

如何利用Qt Creator调试

[此部分待整理,暂未发布]
https://www.wiz.cn/wapp/folder/e79c71ed-f6ab-42e3-bb19-14b235e8bbef?c=%2F011.%E7%A7%91%E7%A0%94%E9%A1%B9%E7%9B%AE%2F%E5%B7%A5%E7%A8%8B%E5%B7%A5%E5%85%B7%2FQt%2F&docGuid=51afe187-70a1-4027-a3df-a233c8a44e4a

Qt Creator快捷键

由于在刚开始使用Qt Creator的时候,我们的目的通常是要阅读代码和简单调试代码,为了提高效率,可以了解一些常用的快捷键。
以下快捷键的学习可以在阅读代码过程中逐渐熟悉,为了方便今后查找,可以将以下链接当做字典来查阅。
推荐该文档的理由是其对快捷键的总结编写方式比较科学,是从单键(F1-F12)到多键(Ctrl、Shift、Alt)逐一归纳的,方便比较系统的记忆。
个人重点推荐:第2,3,5-9,21,30,33,34,35,38,40,42,43,45,46,58,59条。
https://blog.csdn.net/desert187/article/details/23996821

此外,还可以根据自己的习惯,设置快捷键:
具体方法则是依次点击“工具(Tools)=>选项(Options)=>环境(Environment)=>键盘(Keyboard)”。

Ubuntu系统中使用QtCreator常见问题

本部分主要列举了部分常见Ubuntu系统中使用QtCreator过程中遇到的共性问题,包括Qt本身配置和使用ROS过程中出现的问题。

不同linux版本适配Qt版本

大部分情况下,使用高版本的Qt理应不会出现问题,但由于很多程序甚至linux本身也会对Qt有依赖,因此此处仅根据个人情况做以下记录:
针对Ubuntu14.04,目前比较容易安装的版本有:5.5.1
安装失败的版本(注:仅仅是个人尝试,如果有偏差,希望能够在此提出意见,并进行修改):
5.9.8(安装成功后运行会报"libQt5XcbQpa.so.5: undefined symbol: FT_Get_Font_Format"错误,该错误网上说需要替换freetype,可以按照下面方式安装):

wget http://download.savannah.gnu.org/releases/freetype/freetype-2.10.0.tar.bz2
tar -xf  freetype-2.10.0.tar.bz2
cd freetype-2.10.0
./configure  &&  make
cd objs/.libs
sudo cp libfreetype.so* /opt/Qt5*/Tools/QtCreator/lib/Qt/lib -v

5.12
有成功安装的例子,参见http://programmersought.com/article/82731164800/。但个人尝试失败。针对这种高版本Qt可能打不开的情况,官方论坛中普遍建议升级ubuntu,https://forum.qt.io/topic/104502/qtcreator-4-9-2-does-not-start/3

Ubuntu14.04+Qt5.5.1下QtCreator无法输入中文

中文输入设置:https://blog.csdn.net/u010168781/article/details/77855040
无法输入中文:https://blog.csdn.net/u010168781/article/details/80033485
1.安装fcitx-frontend-qt5

sudo apt-get install fcitx-frontend-qt5 

该步骤可以查看locate fcitx-frontend-qt5,从文件fcitx-frontend-qt5:amd64.list中看出系统中安装了相关的库文件,安装位置为/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
2.将该库文件拷贝到自己使用的Qt和QtCreator中

sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /opt/Qt5.5.1/5.5/gcc_64/plugins/platforminputcontexts
sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so  /opt/Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/

3.添加库可执行权限

sudo chmod +x /opt/Qt5.5.1/5.5/gcc_64/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so
sudo chmod +x /opt/Qt5.5.1/Tools/QtCreator/lib/qtcreator/plugins/libfcitxplatforminputcontextplugin.so

最后重启电脑即可
注1:有很多qt编写的程序可能都无法输入中文,将fcitx-frontend-qt5复制到程序安装相应的目录下,就可以正常输入了。
注2:如果出现使用apt-get install fcitx-libs-qt5后,Qt闪退的现象,可以采用源码安装的方式。

多版本Qt使用

我们在使用Linux系统的时候,安装不同的软件可能会用到不同的Qt版本。另外,由于团队内部采用不同版本Qt编写程序,也可能导致需要链接不同版本的Qt动态链接库。
针对以上情况,常用以下命令,来定位和解决问题:
1.首先要查找Qt版本

which qmake
qmake -version

2.在环境变量中修改所需要使用的动态库文件
常用环境变量配置参考《linux入门》或网上资料,通常只需要终端运行sudo gedit ~/.bashrc
3.切换默认使用的Qt版本

sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

添加对应版本

/opt/Qt5.5.1/5.5/gcc_64/bin
/opt/Qt5.5.1/5.5

4.在使用安装的QtCreator文件夹下使用命令
strace ./qtcreator
看是否能够正常运行,如果不能正常打开,会报出错误。
目前遇到以下错误:

  • libQt5Core.so.5: version `Qt_5' not found
    这种情况多于库文件有关,需要根据提示删除库文件或者修改环境变量
  • 明明使用的是Qt5,但提示与libQt4Core有关
    这种情况通常需要将系统默认使用的Qt版本切换,切换命令为:
sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
  • 使用某种软件时无法打开时,也可以采用''strace"命令查看,如果出现"not found"一般是你運行的軟件使用的QT版本比系統中已安裝的QT的版本要高,因此才會出現“not found”的問題,解決起來也很簡單,qmake -version看系統中正在使用的QT的版本,再看錯誤信息中提示的QT版本,如果不一致弄成一致就好了,如果是系統中QT版本低了,那就升級一下qt5-base這個軟件包即可,export庫文件路徑都是治標不治本。

如何配置QtCreator进行ROS开发

1.配置环境变量
终端运行sudo gedit ~/.bashrc
添加ROS的环境变量,注意要结合自己的ROS版本,这里以indigo版本为例

source /opt/ros/indigo/setup.bash
source /home/ugv/catkin_ws/devel/setup.bash
export ROS_MASTER_URI=http://localhost:11311
export ROS_HOSTNAME=localhost

修改完毕后,要执行source ~/.bashrc立马更新环境变量。
2.配置qt环境
根据安装的Qt版本不同,可能安装的桌面快捷方式的地址可能是以下两种:

sudo gedit  /usr/share/applications/DigiaQt-qtcreator-community.desktop

或者

sudo gedit ~/.local/share/applications/DigiaQt-qtcreator-community.desktop

注意修改下面这行:
Exec=bash -i -c /opt/Qt5.7.0/Tools/QtCreator/bin/qtcreator

3.启动roscore
roscore
4.启动QT快捷键

QT打包工具

[此部分待整理,暂未发布]
https://www.zhihu.com/question/64744406





posted @ 2020-03-27 09:58  aipower  阅读(646)  评论(0)    收藏  举报