Ubuntu18.04安装QT5.14.2以及QT导入项目问题和解决办法
1、官网下载安装包
官网地址:QT官网下载
2、官网注册账号
第一步:点击中间的图标;
第二步:点击Create Qt Account,并填写好邮箱和密码,点击注册;
第三步:去注册邮箱确认;
3、安装
在完成2中的步骤后,接下来输入邮箱和密码,点击next,该勾选都勾选,直至安装完成;
4、解决bug
安装后,点击图标没反应的解决方案:
首先安装库sudo apt-get install libxcb-xinerama0,再次点击qt图标,如果未成功再去寻找其他解决办法;
5、QT导入项目
step1 文件->打开文件或项目->选择项目的CMakeLists.txt打开;
step2 构建->执行cmake->编译成功无错->结束;
错误1 :No CMAKE_CXX_COMPILER could be found
解决办法:使用命令sudo apt-get install build-essential进行安装即可。为了查看是否安装上了,可以依次输入 gcc -v、g++ -v来查看安装的gcc和g++的版本号
错误2:Failed to find “GL/gl.h“ in “/usr/include/libdrm“
解决办法:未安装opengl, 使用命令sudo apt install mesa-common-dev进行安装
安装完gcc后,配置gcc:
6、其他
Ubuntu18.04安装github desktop
1、sudo apt-get install gdebi-core
2、sudo gdebi GitHubDesktop-linux-3.1.1-linux1.deb
7、QTimer不能同时使用两个,用QTimerEvent (QT)
一个线程里面不能同时包含两个QTimer,需要用到QTimerEvent(),可以多个定时器同时工作,使用方法如下:
(使用QTimerEvent就不用将定时器和槽函数连接了)
```cpp
QTimer *timer1 = new QTimer(this);
QTimer *timer2 = new QTimer(this);
timer1->start(100);timer2->start(1000);
connect(timer1, SIGNAL(timeout()), this, SLOT(Timer1_Fuc());
connect(timer2, SIGNAL(timeout()), this, SLOT(Timer2_Fuc());
但是运行的时候发现,timer2连接的槽函数Timer2_Fuc()一直没有触发。
可能是一个线程内不能有两个定时器同时工作?
```cpp
.h
//在头文件中重载timerEvent()
private slots:
void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE;
private:
//定义需要用到的定时器
int Timer1;
int Timer2;
.CPP
//在.CPP文件中实现
//启动定时器
Timer1 = startTimer(100);
Timer2 = startTimer(1000);
void MainWindow::timerEvent(QTimerEvent *event) {
if(event->timerId() == Timer1) {
//do Timer1_Fuc
}
if(event->timerId() == Timer2) {
//do Timer2_Fuc
}
}
8、 ubuntu18.04 安装gtest和框架测试
参见博客:安装gtest和框架测试
9、Linux Qt cannot find -lGL错误完美解决方案
参见博客: Qt报lGL错误
10、Linux Qt 中文显示乱码,修改编码方式
参见博客:qt修改文件编码格式