go与qt的新酒老瓶

前言

只所以说是新酒老瓶而不是新瓶老酒是有用意的。

因为QT是器,老瓶,出来时配合着C++的。而如今go来势凶凶,自然英雄所见略同。

两大开源神器,跨平台开发,终将双剑合璧了,让你如虎添翼。

过程记录如下

安装QT

→参考指导:

https://www.cnblogs.com/haijian/p/12417129.html

本人使用/usr/local/qt为QTDIR。5.12.10

安装go

→参考指导:

https://blog.csdn.net/icanx/article/details/91438450

→配置go env国内源

liteide源码编译安装

→参考指导:

https://www.cnblogs.com/7explore-share/p/5838281.html?utm_source=debugrun&utm_medium=referral

出现了模板路径报错,于是使用tarena环境,但是root账户,先安装两个包,再改脚本后,编译方成功。

https://www.cnblogs.com/liaojiafa/p/12798025.html

实在是经典解说:

→针对windows平台

在此时需要安装mingw64做为前提,不然liteide就是水土不服的。必要时关闭360吧!

mingw64实是难搞,换了几个工具,如mingw installation manager,最后用mingw-w64-install.exe
启动后选择版本,posix和seh,这就生成了安装目录。
在安装过程中,把此前下载的源码包压缩包“mingw-w64-v8.0.0.zip”重新命名为“x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z”,放置在默认的目录中“x86_64-8.1.0-posix-seh-rt_v6-rev0”
最后,把安装的路径
C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
放到系统环境变量中。万事大吉。gcc,g++一应具全,随处可用。

GO111MODULE在windows上是没有auto可设置的,即便你使用liteide设置了,但go env中实际还是当它为on。

所以,系统底层仍设置为on,GOPATH目录内的源码编译成功,无论是否有go.mod。但要是GOPATH目录外的拥有go.mod文件(这是通过go mod init src生成的)可以编译成功。

当设置为off时,同时也得让GOPROXY为空,这时GOPATH和有go.mod的外部目录都可在命令行编译成功。所以,建议你还是使用命令行吧,因为,同一代码在命令行和liteide中结果不同,并且,保持on状态,保持代码不在GOPATH中。相信,go的发展也是会弃掉它。

→针对linux平台

GO111MODULE可以被liteide设置成auto.

这样设置的好处是模糊使用GOPATH(任何设置都OK)。而无论要编译的源码在任何目录都可以,且不用设置go.mod。

前台qt后台go起步

→参考指导:

环境:https://github.com/therecipe/qt/wiki

→therecipe/qt包的安装

先go get -u -v 不行就先下载,然后改名适配到代码中包引用的相应GOPATH中,然后再安装命令工具即cmd中的…。

重要是认清go get的本质就是一种git clone的包装。

go install  /home/tarena/code4DN/learn_gopath/src/github.com/therecipe/qt/cmd/...

不出意外是报错的,但看下面的解决问题内容。

→解决go端的环境的问题

https://blog.csdn.net/wzw_mzm/article/details/77618922

出现“找不到 golang.org/x/mod/module”问题,后来手工下载了golang.org/x/下面系列仓库,就是 git clone.

git clone https://github.com/golang/mod.git 
git clone https://github.com/golang/xerrors.git 
这是两个新加入的,一般没有它,已经可以运行demo.最终的完整支持包如下图

原始网上下载运行demo的命令如下,

go get -ldflags="-w" github.com/therecipe/examples/basic/widgets && $(go env GOPATH)/bin/widgets

它会直接运行一个弹出窗口,相应后台的操作是拷贝了代码并编译放在GOPATH/bin中,再运行。
本人已经下载过therecipe/qt包了,就是对应GOPATH下的

github.com/therecipe/examples/basic/widgets/main.go

→解决QT端的环境问题

以上集齐了龙珠。这里是锦上添花,因为,要充分使用QT的伎俩,就需要一套工具。
这时再次执行命令

go install  /home/tarena/code4DN/learn_gopath/src/github.com/therecipe/qt/cmd/...

命令成功使用之后

goqtuic的安装

go get -u -v github.com/stephenlyu/goqtuic

事实上没有这些工具也可以运行demo或QT库的代码。只要thericipe/qt包具备了就行。

总结跨平台

不管是windows还是linux下,都要在GOPATH/src下具备github.com和golang.org。前者里面有therecipe后者里面有x。同样的代码,都用Liteide编译,本地化成各自系统的风格。

静态库的go调用:(用GO来唤醒C的各种沉睡资源吧)
https://www.jianshu.com/p/b3fb41d7c33f

附录:

  • qtsetup会把qt的相应源码下载放置在go源码旁边,如果你有了mingw和gcc,它都会编译成静态库(.a的文件)给你。go帮你丰富环境真是全方位的。如果你是单独完全安装的qt环境,此处可以省略。很久以前,静态编译成window平台的QT库让你累疯,但现在mingw和go,让你永远不碰那个步骤了。
  • 翻墙参考:https://www.cnblogs.com/hupeng1234/p/9727170.html
  • qt如果要调试或用其它QT版本,有几个需要的环境变量比如QT_DIR。

刍狗的由来

不必说,老子的“天地不仁,以万物为刍狗。圣人不仁,以百姓为刍狗。”想必都听过。
但理解它,却不是很容易。需要先从刍狗下手。

刍狗,就是祭祀用的草编的狗,刍读chu二声而非zou。“刍狗”就是扎草为狗形,疾疫时用于求福禳灾,此时要文饰妆扮一番。祈祷之后,侍祭者可享用祭品,而刍狗即便弃置,人踏车轹,随后就将它当做柴草,一烧了事。我们看汉、魏、晋文献中的记载,就可以明白。《淮南子·齐俗篇》说刍狗和土龙刚刚做好的时候,用青黄色来文饰,蒙上绮绣,缠着红线,尸祝穿着纯黑色的祭服,大夫戴着礼帽来迎送它们。等到用完之后,土龙不过成了一堆土壤,刍狗不过成了一堆草芥罢了,有谁看重它们呢?用时显贵,用后废弃,天地万物,莫非如此。
有了刍狗的基础,于是整理出三种对老子言的理解,如下:

1)天道任自然而已,并不加惠于物。而万物各自有所用。只是让万物如刍狗那样走完自己由荣华到废弃的过程而已。
2)天地滋养着万物,不会说自己多么仁厚,不求万物用草扎成的狗来表示祭拜他。所以天地不言仁,不争仁,滋养着万物,不求万物回报他。人也应该有此仁。
3)天地之间找不到仁,是因为万物都成了没有灵魂的草扎的狗。圣人也找不到仁,是因为百姓都成了刍狗。所以,后面“多言数穷,不如守中”听多了仁的说法,不如心中守仁。

其实理解的关键在于“刍狗”的词性。如果是中性词使用,那就是一个祭祀用的物品,和土龙一样。那就是天地和圣人都不要求仁厚。
如果是按贬义来使用,那就是第三种理解,有悲观和绝望的成分。而如果“刍狗”是一种比喻手法时,就是万法自然的取义了。
本人倾向于第二种,因为,老子习惯于“名词动用”,你一定听过:

上德不德,是以有德。

此处的不德,是指不要求德行(动词),于是推论,天地和圣人的不仁就是不要求仁的行为。

☼☰☾T

看文章题目一定比较困惑,因为是加密文字。
其中有乾卦和英文,这样再看意思就变成:

日乾夕惕

说到这里,已经有人可以读出整句了,国学易经中有云:

终日乾乾,夕惕若,厉无咎。

出于乾卦的动爻九三,意思是:君子,终日都勤奋努力,积极向上,到了晚上便思考明天并预测可能的变化和应对之术。这样以来,虽处危境但没有毛病。
这里有值得玩味的地方,有人认为断句是分歧,分别是:

“夕惕,若,厉,无咎”和“夕惕若,厉无咎”

对于不同的断句,解释就会有不同。九三爻有人认为是暗藏凶险的,所以,这些人把若不解释成好像或者可能,而是变成人称“你”,这样看来
意思变成:“夜晚要警惕,你,仍处于危险之中”。
九三爻的象辞说,君子举止言谈因忠诚而进德修业,能够洞察秋毫,能够高瞻远瞩而守业。是故,居上位而不骄,在下位而不忧。这就是对断语“无咎”的解读。

美国大选之殇

美国总统大选秀,历来就不少内幕和交易。当年戈尔与布什,票差分毫,闹到法院,也是有人息事宁人,有人欺世盗名。
古有姜子牙80挂相,今有拜登78中总统。事不过三,老骥出山。
上德不德,是以有德。美国的总统们,内杠还是打仗?
路透社的一篇报导说密歇根一位民主党母亲宣布将把票投给特朗普以后,她21岁的儿子宣称“你不再是我妈”;
而在华人聚集的微信上,意见相左的人们正在用最恶毒的中文互相问候着对方的祖宗。大选开始,就有人要移民加拿大,
现在摇摆州又有30万张选票不翼而飞。
还有疫情呢,还有四年后还这么选吗?对了,咱就是看热闹不怕事大的。

附赠段子:

川普一直焦急地等消息,一位朋友劝他早点睡,说:“拜登啦,等也是拜登。”
问:这位朋友最可能是什么人?
A,一位共和党朋友
B,一位民主党朋友
C,一位河南朋友