,转载 https://blog.csdn.net/lanbery/article/details/81745611

如果你是一个墨守成规的coding,请移步其他内容,这部分内容可能不适合你。如果你希望到外面看看,感受新鲜的技术以及自由自在的氛围,请继续。当然你也要付出一定的精力去学习如何FQ,因为很多知识需要跳一跳出去看看(其实外面的世界还是很精彩的)。好了,废话不说了,进入正题。

Qt是什么?

QT是一个跨平台的C++应用程序开发框架。广泛用于开发GUI程序,这种情况下又被称为部件工具箱。也可用于开发非GUI程序,比如控制台工具和服务器。Qt使用于OPIE、Skype、VLC media player、Adobe Photoshop Elements、VirtualBox与Mathematica以及被Autodesk、欧洲空间局、梦工厂、Google、HP、KDE、卢卡斯影业、西门子公司、沃尔沃集团, 华特迪士尼动画制作公司、三星集团、飞利浦、Panasonic 所使用。

它是Digia公司的产品。Qt使用标准的C++和特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏。通过语言绑定,其他的编程语言也可以使用Qt。

以上摘自维基百科。

2008年,Qt Company科技曾经被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具,所有不知道有人是否还记得当初Nokia曾经推出过一款手机同步软件,一坨绿的能够同步通讯录、发信息等等功能就是基于Qt这货开发的,Nokia甚至连开发工具的风格都是在那个阶段定型的。

使用Qt开发的软件,相同的代码可以在任何支持的平台上编译与运行,而不需要修改源代码。会自动依平台的不同,表现平台特有的图形界面风格。这是Qt最大的特点,同时这也是导致Qt的安装文件高达2.7GB的原因。

想了解更多请穿越Qt官网

Qt 模块结构

QT+ Golang开发环境

window下搭建Qt + Go 开发环境需要做以下工作:

  1. Golang安装,参见Golang官网

  2. 配置Go环境变量:GOROOT(Golang安装路径)和GOPATH(go项目工作区)

  3. 安装Qt,两种方式(这里采用MSYS2方式):

    • 官方版本安装

    • MSYS2 安装

  4. 获取Qt go语言支持package: github.com/therecipe/qt

  5. 运行setup

Go 安装与环境变量设置

golang安装,各位可以百度,教程很多,这里不详细讲解。重点介绍一下window Go环境变量GOROOT和GOPATH。GOROOT 配置你go所安装的目录,GOPATH 配置你将来要编写go项目的根目录,顺便介绍一下go项目的目录结构。

Golang项目目录下一般有三个子目录

  • src 存放源码

    • package A

      • a1.go

        • AA

          • aa1.go

    • package B

      • b1.go

      • b2.go

      • main.go

  • pkg 编译后生成的文件

  • bin 编译后生成的可执行文件

-----------------------------------------------------------------------------------------------

以上是golang项目的目录结构,golang不像java项目那种组织方式,java中每个项目都有src、resource、lib、target\classes...等等
而golang则是把每个项目的生成的可执行文件同一放到工作区(即GOPATH\bin)bin下.配置环境变量时注意这一点就可以了,不然在编译项目时查找编译结果也比较麻烦了。
上面的src不仅有你编写的Golang代码,同时还有你代码依赖其他项目的源码(下图是我本地代码库)。

GOPATH目录结构

MSYS2安装

安装MSYS2前,简单介绍一下MSYS2。MSYS2是MinGW的子项目,MinGW (Minimalist GNU for Windows)又称mingw32,是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API)、库和可执行文件。

  • 下载MSYS2

  • 安装MSYS2,官网有详细的安装步骤说明。这里提示一下,你的安装路径最好安装在有足够剩余空间的盘符目录下,因为后续所有基于MSYS2文件个安装都会在这个根目录下。

  • 配置环境变量QT_MSYS2_DIR=%MSYS Home%/msys64

  • Open a MinGW shell 

  • pacman -Syyu 更新MinGW

  • 安装Qt动态发布链接库: pacman -S mingw-w64-x86_64-qt-creator mingw-w64-x86_64-qt5

  • 安装Qt静态链接库:pacman -S mingw-w64-x86_64-qt-creator mingw-w64-x86_64-qt5-static

  • pacman -Scc 清理安装包

  • 设置和部署 export QT_MSYS2_ARCH=amd64

获取Qt go语言支持package

获取Qt 资源包:在cmd命令窗口执行 go get -v github.com/therecipe/qt/cmd/...

qtsetup

上面操作都完成后,你的GOPATH/bin下应该多出:qtdeploy.exe,qtrcc.exe,qtsetup.exe等等可执行文件。执行qtsetup.exe[就可以安装了。注意:时间比较长,网络可能需要出国]

QT +go 开发 GUI程序的更多相关文章

  1. ROS:使用Qt Creator创建GUI程序(一)

    开发环境: Ubuntu14.04 ROS indigo version Qt Creator 3.0.1 based on Qt 5.2.1 步骤如下:(按照下面命令一步步来,亲测可行) (一)安装 ...

  2. 笔记: c开发gui程序 (WM_CREATE, WS_CLIPCHILDREN , SetWindowPos)

    过去两年,用c写的gui程序我一般使用的套路是: 在 winMain()中, 先创建一个主窗口, 紧接着就是在下面创建子窗口(子控件). 可能是因为写这方面的程序较少,所以也没遇到什么大问题,之前就是 ...

  3. 〖Linux〗Qt+gsoap开发客户端程序,服务端地址设定的字符串转换处理

    之所以写出来,是由于经常因为这个问题屡屡丢面子.. 一般情况下,QString转换成(char*),我们一般直接使用: char *str = qstr->text().toLatin1().d ...

  4. Qt Creator开发的程序提升到管理员权限运行

    一些功能需要管理员权限,例如启动一个服务,这就需要exe在管理员权限下运行,一个方法是在exe上右键,选择“以管理员身份运行”,或者右键-属性-兼容性-勾选“以管理员身份运行此程序” 另一个方法是在程 ...

  5. 树莓派入门教程——使用Qt开发界面程序

    前言        Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器.Qt是面向对象的框架,使用特 ...

  6. 客户端GUI程序开发漫谈

    这篇文章包含了这个领域的很多开源项目的介绍,还有我多年来的心血和汗水  去年夏天的时候,我用QT做了一个小工具 后来还用QT做了流程设计器 我把程序分享给飞扬青云之后,他甚至搞出来一套QT的皮肤来 说 ...

  7. atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform

    atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform 1. Absoluti 布局(经常使用) 1 2. ...

  8. Qt官方开发环境生成的exe发布方式--使用windeployqt(windeployqt是单独的程序,放在低版本qt4目录下也可以运行的)

    Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行.因此 Qt 官方开发环境里自带了一个 ...

  9. Qt跨平台开发Wince5.0和Android程序

    所谓跨平台是指维护一份代码,可编译出多平台的应用程序.Qt这方面虽然已经做的不错,但性能还是体验,和原生开发工具开发的程序相比,差距还是不小的.但单从生产应用的角度来说,可以采用,不失为一种好的解决方 ...

随机推荐

  1. 数据结构HashMap(Android SparseArray 和ArrayMap)

    HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在.在HashMap中,key-value总是会当做一个整体来处理,系统会根据 ...

  2. 在多任务(RTOS)环境中使用看门狗

    最近在SEGGER的博客上看到一篇有关在实时操作系统使用看门狗的文章.从一个失败的太空项目出发,分析了看门狗的作用及使用,自我感觉很有启发,特此翻译此文并推荐给各位同仁.为了阅读方便,有些航天领域名词 ...

  3. day 13 装饰器

    装饰器基础 装饰器的目的是为了给被装饰 对象,增加新功能,或者说增加某种能力 在程序中工具就是函数 如此一来,装饰器指的就是一个函数,被装饰着也是一个函数 总结;装饰器就是用一个函数去拓展另外一个已存 ...

  4. Redis简介与安装

    目录 Redis概述与安装使用 Redis概述与安装使用 Author:SimpleWu GitHub-redis Redis简介 Redis英语全称:( REmote DIctionary Serv ...

  5. SpringMVC环境搭建

    Spring MVC为展现层提供的基于MVC设计理念的优秀Web框架,是目前最主流的MVC框架之一. Spring 3.0之后完全超越Struts2,称为最优秀的MVC框架.学完SpringMVC之后 ...

  6. laravel 查询

    public function recommends(Request $request) { // $sort = $request->query('sort'); $userId = $req ...

  7. bzoj 3566

    非常好也是比较难的题 首先,不难看出这是一道树形的概率dp 那么我们就要考虑转移 我们发现,一个点能充上电的概率是这个点本身通电的概率+这个点的子节点给他传过来电的概率+这个点的父节点给他传过来电的概 ...

  8. PyCharm设置字体风格

    设置字体风格:File—Setting—Editor-Color Scheme-Color Scheme Font-把Scheme设置为:WarmNeon

  9. PAT Basic 1069. 微博转发抽奖(20)

    小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行给出三个正整数M(<= 1000).N ...

  10. Caused by: java.net.ConnectException: Connection refused/Caused by: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    1.使用sqoop技术将mysql的数据导入到Hive出现的错误如下所示: 第一次使用命令如下所示: [hadoop@slaver1 sqoop--cdh5.3.6]$ bin/sqoop impor ...