在Win10的Linux子系统Ubuntu中使用Qt

news/2024/7/6 4:52:30 标签: WSL, Win10 Linux子系统, Ubuntu, Qt

Win10Linux子系统Ubuntu中使用Qt

陈拓 2021/07/26-2021/07/26

1. 概述

在《Win10的Linux子系统Ubuntu安装图形界面》

https://zhuanlan.zhihu.com/p/393145947

https://blog.csdn.net/chentuo2000/article/details/119104547

一文中我们为WSL安装了图形界面。在本文中我们在WSL图形界面的基础上安装和使用Qt

2. 安装Qt

2.1 QtQt Creator的区别

Qt是C++的一个库,里面集成了一些库函数,提高开发效率。

Qt Creator是一个集成了C++语言和CMake工具的IDE开发环境。

2.2 安装Qt5

  • WSL终端创建目录hk

mkdir hk

  • 进入hk

cd hk

sudo apt-get update

sudo apt-get install cmake qt5-default qtcreator

出错,按照提示,输入:

sudo apt-get install cmake qt5-default qtcreator --fix-missing

 

  • 验证安装是否成功

qmake -version

 

OK!

查看Qt目录:

找qt5的安装目录

sudo find / -name qt5

 

ls -l /usr/lib/x86_64-linux-gnu/qt5

查看配置文件qt.conf

2.3 运行Qt Creator

  • 启动XLaunch

看《Win10的Linux子系统Ubuntu安装图形界面》

https://zhuanlan.zhihu.com/p/393145947

https://blog.csdn.net/chentuo2000/article/details/119104547

  • 在terminal执行命令qtcreator启动Qt Creator

 

出错,解决方法:

[https://stackoverflow.com/questions/63627955/cant-load-shared-library-libqt5core-so-5]

sudo strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5

再执行qtcreator

有错误,但Qt Creator启动了:

2.4 解决错误问题

  • QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ccdc'

告知用户XDG_RUNTIME_DIR环境变量未设置,可以不管它,系统默认使用目录/tmp/runtime-ccdc:

 

ccdc是我的用户名。

XDG_RUNTIME_DIR给出用户运行时目录,如果不需要就不要定义这个变量。

如果需要,在/etc/profile末尾增加一句:

export XDG_RUNTIME_DIR=/your/dir

/your/dir是你定义的目录。

注意:这个目录对于执行qtcreator命令的用户一定要有读写权限。然后刷新全局变量:

source /etc/profile

  • 解决libGL错误

libGL error: No matching fbConfigs or visuals found

libGL error: failed to load driver: swrast

无匹配的帧缓存设置和视图,无对应swrast驱动。swrast主要用于图形渲染,其出现问题说明没有发现显卡的硬件驱动。

解决方法参考文档:

WSL下使用VcXsrv启动chromium browser及常见错误解析 (ubuntu18.04, 图形界面)

[https://www.cnblogs.com/freestylesoccor/p/9630758.html]

在启动XLaunch时关闭openGL 选项,该错误即消失,说明wgl(windows自带图像处理器)跟Qt存在兼容问题。

 

取消Native opengl勾选。

重新启动启动Qt Creator

qtcreator

 

没有错误信息了,Qt Creator启动正常:

3. QT项目测试

  • 创建项目

File > New File or Project

选择Qt Widgets Application,点击Choose。

项目名称Name:hello

创建目录:/home/ccdc/hk

Next >

 

默认,Next >

 

默认,Next >

 

默认,Next >

 

默认,Next >

 

Finish

 

完成hello项目创建,进入代码编辑页面。

出现错误:

 

unkown type name ‘QApplication’
unkown type name ‘MainWindow’

解决办法:

About > About Plugins > C++ 去掉ClangCodeModel的勾选。

 

重新启动Qt Creator。

打开我们之前创建的项目hello。

 

错误信息没有了。

  • 界面设计

双击mainwindow.ui

打开UI设计窗口:

 

拖拽一个Label组件到Type Here上。

 

编辑text属性:

 

OK

 

Ctrl+S保存。

 

F5或者点击左下角的Run按钮运行程序。

参考文档

  1. ubuntu 查找qt是否安装_ubuntu18.04 安装qt5.12.8及环境配置的详细教程https://blog.csdn.net/weixin_42352222/article/details/114472231?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase
  2. 安装QT5 出现错误 unkown type name ‘QApplication’ unkown type name ‘MainWindow’
    https://blog.csdn.net/u014783785/article/details/107062307


http://www.niftyadmin.cn/n/1733097.html

相关文章

IE6兼容png图片

<!--[if IE 6]><script src"/js/DD_belatedPNG.js"></script><script>DD_belatedPNG.fix(img,a.opt,.png_bg);</script><![endif]--> DD_belatedPNG.js源码 /*** DD_belatedPNG: Adds IE6 support: PNG images for CSS backgrou…

[从jQuery看JavaScript]-JavaScript

http://blog.csdn.net/natineprince/archive/2009/10/31/4751609.aspx什么是JavaScript&#xff1f;相信随便百度Google一下都能找到一大堆的定义解释。而在我的理解中&#xff0c;JavaScript就是一种客户端的脚本 语言&#xff0c;用于处理页面数据逻辑和用户体验&#xff08;…

海康威视客户端iVMS-4200连接NVR

海康威视客户端iVMS-4200连接NVR 陈拓 2021/07/30-2021/08/01 1. 概述 iVMS-4200客户端是一款与网络监控设备配套使用的综合应用软件&#xff0c;可满足用户多方面需求&#xff0c;如设备管理、人员管理、考勤、可视对讲、数据分析、远程设备配置等。客户端可与DVR、NVR、IPC…

海康威视SDK实例QtDemo显示NVR视频窗口(Linux+Qt)

海康威视SDK实例QtDemo显示NVR视频窗口(LinuxQt) 陈拓 2021/07/312021/08/01 1. 概述 在《海康威视客户端iVMS-4200连接NVR》 https://zhuanlan.zhihu.com/p/395137370 https://blog.csdn.net/chentuo2000/article/details/119298486 一文中我们通过海康威视客户端iVMS-42…

Ubuntu 18.04安装远程桌面

Ubuntu 18.04安装远程桌面 陈拓 2021/08/05-2020/08/08 1. Putty登录 IP地址 192.168.0.103 登录账户 ccdc xxxxxxxx 2. Ubuntu 18.04安装桌面 如果安装的系统已经带桌面跳过这一步。 2.1 查看linux系统版本 lsb_release -a 2.2 安装桌面 sudo apt-get install ubuntu…

CSS浮动属性,知道原理就很简单,灵活控制块级元素在一行内显示

在页面布局中&#xff0c;有两个非常常用的CSS属性。它们巧妙的控制着块级元素们之间的位置&#xff0c;灵活的让块级元素在一行内显示或者另起一行。说到这里&#xff0c;相信大家已经猜出来了&#xff0c;这两个属性就是控制块级元素浮动的属性。整个页面布局过程中&#xff…

HTML Dom Table对象

http://www.w3school.com.cn/htmldom/dom_obj_table.asp Table 对象 Table 对象代表一个 HTML 表格。 在 HTML 文档中 <table> 标签每出现一次&#xff0c;一个 Table 对象就会被创建。 IE: Internet Explorer, F: Firefox, O: Opera, W3C: W3C 标准. Table 对象集合 集合…

HTML DOM deleteRow() 方法

http://www.w3school.com.cn/htmldom/met_table_deleterow.asp 定义和用法 deleteRow() 方法用于从表格删除指定位置的行。 语法 tableObject.deleteRow(index) 说明 参数 index 指定了要删除的行在表中的位置。行的编码顺序就是他们在文档源代码中出现的顺序。<thead> 和…