,转载 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. NPOI写Excel,Spire.XLS for.NET组件转换Excel为PDF

    首先要引用NPOI动态库和Microsoft.Office.Interop.excel.dll (Microsoft.Office.Interop.excel.dll  最好使用使用NuGet下载 , ...

  2. html超文本标记语言

     <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. Meta标签详解

    [转载]Meta标签详解 Posted on 2005-05-17 20:00 二十四画生 阅读(54195) 评论(102)  编辑 收藏 Meta标签详解,在网上转的,希望对大家有用 引言 您的个 ...

  4. java多线程快速入门(十七)

    多线程通讯实例(必须要有多个线程.必须要管理同一个变量:线程A生产一个变量,线程B消费一个变量) package com.cppdy; class User { public String usern ...

  5. Nginx的进程模型及高可用方案(OpenResty)

    1. Nginx 进程模型简介 Nginx默认采用多进程工作方式,Nginx启动后,会运行一个master进程和多个worker进程.其中master充当整个进程组与用户的交互接口,同时对进程进行监护 ...

  6. Python继承、方法重写

    继承 在编写类时,并不是每次都要从空白开始.当要编写的类和另一个已经存在的类之间存在一定的继承关系时,就可以通过继承来达到代码重用的目的,提高开发效率. class one(): "&quo ...

  7. Jmeter 自动化测试报告扩展

    首先了解下生成测试报告的过程,我们看到的测试报告是由.jtl格式转换为.html,html报告的样式由extras目录下xsl文件决定.优化测试报告需要分为两部分内容,首先我们要优化输出的测试内容,其 ...

  8. 获取git更新文件

    #获取最后一个版本的更新日志workspace2=/testtemplogdir=/testtmprm -rf ${logdir}/change.loggit diff --stat $GIT_PRE ...

  9. 微信小程序开发 如何退出当前页面

    默认是在首页 wx.navigateBack({     delta: -1 });     详情参考. https://mp.weixin.qq.com/debug/wxadoc/dev/api/u ...

  10. jsp和