- 博客(57)
- 资源 (35)
- 收藏
- 关注
原创 QComboBox 样式
QComboBox { border: 1px solid #bebebe; padding: 1px 18px 1px 3px; font: normal normal 16px "Microsoft YaHei"; color: #555555; background: transparent;}QComboBox:editable{ background: transp...
2017-11-29 11:02:21 5119 1
原创 QPushButton 文字居左
QPushButton{text-align: left;}参考:https://www.yuque.com/docs/share/a9eb7a41-068c-4c3a-af5f-a18f4f7a08ec
2017-11-29 08:54:29 4536
原创 QLineEdit光标问题
QLineEdit的光标当失去焦点后仍然显示的问题: 在lineedit和其它按钮之间切换焦点时,注意lineedit的设置有顺序,否则当失去焦点时仍有光标闪,或者得到焦点无光标。 使lineedit有效:lineedit->setEnabled (true); lineedit->setFocus (); 使lineedit无效:l...
2017-11-29 08:53:32 5104
原创 Go并发编程之channel
Go语言提供的消息通信机制被称为channel。不要通过共享内存来通信,而应该通过通信来共享内存。channel是Go语言在语言级别提供的goroutine间的通信方式。我们可以使用channel在两个或多个goroutine之间传递消息。channel是进程间的通信方式,因此通过channel传递对象的过程和调用函数时的参数传递行为比较一致,比如也可以传递指针。如果需要跨进程通信,建议使...
2017-11-28 09:15:19 400
原创 Go并发编程之goroutine
goroutine是Go语言中的轻量级线程实现,由Go运行时(runtime)管理。在一个函数调用前加上go关键字,这次调用就会在一个新的goroutine中并发执行。当被调用的函数返回时,这个goroutine也自动结束了。需要注意的是,如果这个函数有返回值,那么这个返回值会被丢弃。 Go语言的程序执行机制 Go程序从初始化main package并执行main()函数开始...
2017-11-28 09:13:09 312
原创 Go并发编程之协程
执行体是个抽象的概念,在操作系统层面有多个概念与之对应,比如操作系统自己掌管的进程(process)、进程内的线程(thread)以及进程内的协程(coroutine,也叫轻量级线程)。与传统的系统级线程和进程相比,协程的最大优势在于其“轻量级”,可以轻松创建上百万个而不会导致系统资源衰竭,而线程和进程通常最多也不能超过1万个。这也是协程也叫轻量级线程的原因。 多数语言在语法层面并不直接支持协...
2017-11-24 09:29:25 356
原创 Go 并发编程之并发基础
并发程序的优点:并发能更客观地表现问题模型; 并发可以充分利用CPU核心的优势,提高程序的执行效率; 并发能充分利用CPU与其他硬件设备固有的异步性。 并发包含以下几种主流的实现模型:多进程。多进程是在操作系统层面进行并发的基本模式。同时也是开销最大的模式。在Linux平台上,很多工具链正是采用这种模式在工作。比如某个Web服务器,它会有专门的进程负责网络端口的监听和链接管...
2017-11-24 09:24:14 268
原创 QRadioButton样式
QRadioButton{ spacing: 2px; color: white;}QRadioButton::indicator { width: 45px; height: 30px;}QRadioButton::indicator:unchecked { image: url(:/Images/switchOff);}QRadioButt...
2017-11-23 17:14:10 4534
原创 Go面向对象编程之接口
接口在Go语言有着至关重要的地位。如果说goroutine和channel 是支撑起Go语言的并发模型的基石,让Go语言在如今集群化与多核化的时代成为一道极为亮丽的风景,那么接口是Go语言整个类型系统的基石,让Go语言在基础编程哲学的探索上达到前所未有的高度。 Go语言在编程哲学上是变革派,而不是改良派。这不是因为Go语言有goroutine和channel,而更重要的是因为Go...
2017-11-22 12:36:15 464
原创 Go面向对象编程之可见性
Go语言对关键字的增加非常吝啬,其中没有private、 protected、 public这样的关键字。要使某个符号对其他包(package)可见(即可以访问),需要将该符号定义为以大写字母开头,如: 这样, Rect类型的成员变量就全部被导出了,可以被所有其他引用了Rect所在包的代码访问到。成员方法的可访问性遵循同样的规则,例如: 这样, Rect的a...
2017-11-22 12:33:10 328
原创 Go面向对象编程之匿名组合
Go语言也提供了继承,但是采用了组合的文法,所以将其称为匿名组合。 需要注意的是,不管是非匿名的类型组合还是匿名组合,被组合的类型所包含的方法虽然都升级成了外部这个组合类型的方法,但其实它们被组合方法调用时接收者并没有改变。 参考:https://www.yuque.com/docs/share/a8adfc05-b633-4694-9823-d68ee9c1...
2017-11-22 12:28:44 287
原创 Go面向对象编程之初始化
在定义了Rect类型后,该如何创建并初始化Rect类型的对象实例呢?这可以通过如下几种方式实现: 在Go语言中,未进行显式初始化的变量都会被初始化为该类型的零值,例如bool类型的零值为false, int类型的零值为0, string类型的零值为空字符串。 在Go语言中没有构造函数的概念,对象的创建通常交由一个全局的创建函数来完成,以NewXXX来命名...
2017-11-22 12:23:00 1620
原创 Go面向对象编程之系统类型
类型系统是指一个语言的类型体系结构。一个典型的类型系统通常包含如下基本内容: 基础类型,如byte、 int、 bool、 float等; 复合类型,如数组、结构体、指针等; 可以指向任意对象的类型(Any类型); 值语义和引用语义; 面向对象,即所有具备面向对象特征(比如成员方法)的类型;...
2017-11-22 09:38:31 305
原创 G0 -- import使用以及._的作用解析
go中import用于导入包。导入之后就可以使用包中的代码。比如:import( "fmt")在代码中就可以使用fmt包中的方法,如:fmt.Println("hello world")1.使用点操作引入包时,可以省略包前缀:import( . "fmt")注意上面 fmt前多了 . 字符。代码中使用时:Println("he...
2017-11-21 09:30:28 379
原创 Golang连接SQLite、MySQL、ORacle
说明:go语言连接数据库不像JAVA那么方便,本文分别介绍了连接三种典型数据库的驱动以及连接方式:小型:SQLite;中型:MySQL;大型:Orace. 安装问题:1.32 位 windows 的安装 1_1.安装 sqlite3。到 http://www.sqlite.org/download.html 的页面中,找到 sqlite-dll-...
2017-11-20 17:30:29 2258
原创 Fix cannot find package "golang.org/x/net/context"
编译错误信息go-sqlite3\sqlite3.go:153:2: cannot find package "golang.org/x/net/context" in any of:解决方案:cd srcmkdir golang.orgcd golang.orgmkdir xcd xgit clone git@github.com:golang/net.git --de...
2017-11-20 14:39:00 2680 1
原创 Git Bash命令行使用Git
Git是什么 Git是目前世界上最先进的分布式版本控制系统。SVN与Git的最主要的区别 SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器那里得到最新版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作。如果局域网还可以,宽带够大,速度够快,如果在互联...
2017-11-17 15:37:06 17332 1
原创 利用Git GUI来使用GitHub远程仓库
当我们安装完Git后,在桌面右键会出现Git GUI Here 和 Git Bash Here,很显然,一个是Git的GUI一个是Git的命令行。一般都用Bash的方式来使用Git,但Git毕竟是一个工具,有好用的GUI 界面也可以让不熟悉命令的同学快速上手。Git本地仓库和GitHub远程仓库建立连接1.打开Git Bash,输入下面命令,按提示输入密码。 $ ss...
2017-11-17 11:22:40 5744
原创 Git使用详细教程
Git介绍 GIT是一款分布式的版本控制系统,最初是为linux内核版本控制而开发的,在团队协作上比cvs等集中式的版本控制管理更有优势。经过多年的发现,目前,GIT可以运行在Linux/Windows/MAC等操作系统上。以Windows为例,介绍Git的常规使用方法。 工具 MSYSGIT软件 方法/步骤 1.下载MSYSGIT ...
2017-11-16 15:16:41 2903
原创 Golang实现简单的定时器
问题 做项目的时候经常会有这样的需求,在某个时刻开始执行某个任务,然后每隔一段时间都会执行该任务。 windows下有计划任务,linux下有cron。如果用python可以使用apscheduler库。那么在Golang中应该怎么实现呢?间隔执行 time包中有个Ticker可以用来实现简单的定时任务。 ticker := time.NewT...
2017-11-16 14:48:39 1068
转载 Golang面试解析
面试题1.写出下面代码输出内容package mainimport ( "fmt")func main() { defer_call()}func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() def
2017-11-15 16:09:24 4226
原创 关于Go关键字defer的一些坑
defer意为延迟,在Go语言中用于延迟执行一个函数。它可以帮助我们处理容易忽略的问题,如资源释放、连接关闭等。但在时间使用过程中,有一些需要注意的地方(坑)。结论1.若函数中有多个defer,其执行顺序为先进后出,可以理解为栈。 package mainimport "fmt"func main() { for i := 0; i < 5; i++ {...
2017-11-15 15:11:53 787
原创 C++ escape和unescape算法
escape算法 std::string escape(std::string &str){ setlocale(LC_CTYPE,""); wchar_t aa[1<<10]; mbstowcs(aa,str.c_str(),str.size()); std::wstring wcs(aa); str = ""; for(int i=0;i<wc...
2017-11-15 14:30:48 3959
原创 Go语言中append函数返回值必须有变量接收的原因探究
append函数返回更新后的slice(长度和容量可能会变),必须重新用slice的变量接收,不然无法编译通过 slice的底层是数组,一片连续的内存,slice变量只是存储该slice在底层数组的起始位置、结束位置以及容量 它的长度可以通过起始位置和结束位置算出来,容量也可以通过起点位置到底层数组的末端位置的长度算出来,多个slice可以指向同一个底层数组。...
2017-11-14 16:08:01 971
原创 golang 并发 面试
问题描述: 使用两个goroutine交替打印序列,一个goroutinue打印数字,另一个goroutine打印字母,最终结果如下: 12AB34CD45EF78GH910IJ package mainimport ( "fmt" "sync")func PrintNums(printChar chan in...
2017-11-14 15:53:18 2773
转载 golang返回值为interface{}的类型判断
大家知道,golang对于不确定返回值可以用interface{}代替,这确实很方便,但是也带来了问题,那就是如何判断返回值是什么类型的?其实可以用反射也就是reflect来判断,通过函数reflect.TypeOf()1 即返回类型!本文参考:https://www.yuque.com/docs/share/5ae496e5-12b3-4966-be97-14f...
2017-11-14 15:17:59 5062
原创 os.Open()和os.OpenFile()的区别
从帮助文档上可以看出, Open()只能用于读取文件。 本文参考:https://www.yuque.com/docs/share/cf0caca2-298c-4796-b3e7-5980837fd545
2017-11-14 15:06:02 9119
原创 Go错误处理
error接口 Go语言引入了一个关于错误处理的标准模式,即error接口,该接口的定义如下: 对于大多数函数,如果要返回错误,大致上都可以定义为如下模式, 将error作为多种返回值中的最后一个,但这并非是强制要求: 调用时的代码建议按如下方式处理错误情况: 示...
2017-11-14 14:47:04 1250
原创 Go匿名函数和闭包
匿名函数 匿名函数是指不需要定义函数名的一种函数实现方式。 在Go语言中,函数可以像普通变量一样被传递或使用,这与C语言的回调函数比较类似。不同的是,Go语言支持随时在代码里定义匿名函数。 匿名函数由一个不带函数名的函数声明和函数体组成,如下所示: 匿名函数可以直接赋值给一个变量或者直接执行: 闭包...
2017-11-14 10:30:29 6821 1
转载 Golang中的fmt用法
fmt包实现了格式化的I/O函数占位符通用占位符:%v值的默认格式。当打印结构体时,“加号”标记(%+v)会添加字段名%#v相应值的Go语法表示%T相应值的类型的Go语法表示%%字母上的百分号,并非值的占位符用法如下:package mainimport ( "fmt")type Sample struct { a int str
2017-11-13 13:42:12 13042
原创 Golang 日期时间格式format()
Go语言中日期时间格式format中的时间点是固定死的,必须使用time包的常量 本文参考:https://www.yuque.com/docs/share/66342f76-8a12-4d4d-b614-7e157cf8cd22
2017-11-10 15:08:26 4406
原创 Go 文件读写操作
使用io/ioutil进行读写文件ioutil提供了两个方法: func ReadFile(filename string) ([]byte, error) func WriteFile(filename string, data []byte, perm os.FileMode) error 读文件: package mainimpor...
2017-11-10 14:46:40 859
原创 Go项目目录管理
Golang的工程管理还是挺简单的,完全使用目录结构还有package名来推导工程结构和构建顺序。当然,首先要说的是环境变量$GOPATH,项目构建全靠它。这么说吧,想要构建一个项目,就要将这个项目添加到$GOPATH中,多个项目用“;”分隔。Golang项目目录一般有三个子目录·src存放源代码·pkg存放编译后生成的文件·bin存放编译后生成的可执行文件需要我们重点关注...
2017-11-10 11:11:59 1086
原创 Go并发concurrency
并发concurrency 很多人都是冲着Go大肆宣扬的高并发而忍不住跃跃欲试,但其实从源码的解析来看,goroutine只是官方实现的超级“线程池”而已。不过话说回来,每个实例4-5KB的栈内存占用和由于实现机制而大幅减少的创建和销毁开销,是制造Go号称高并发的根本原因。另外,goroutine的简单易用,也在语言层面上给予了开发者巨大的便利。并发不是并行:并发主要由切换时间片来...
2017-11-09 14:40:04 534
转载 程序员之间的鄙视链
何愁何怨?程序员之间的鄙视链,你归属哪派?本文转自于:https://mp.weixin.qq.com/s/oqE36S7952ClUSmswgIOCw
2017-11-09 11:01:14 1344
原创 Go反射reflection
反射reflection反射可大大提高程序的灵活性,使得interface{}有更大的发挥余地反射使用typeOf和valueOf函数从接口中获取目标对象信息反射会将匿名字段作为独立字段(匿名字段本质)想要利用反射修改对象状态,前提是interface.data是settabele,即pointer-interface基本数据类型:复杂数据类型: pa...
2017-11-08 17:13:08 423
原创 C++ vector的拷贝
vector是一个构造对象,不能直接使用=符号进行复制,必须迭代每个元素来复制。或者重载=操作符。赋值方法:方法1:vector<data_type> v2; vector<data_type> v1(v2);//声明方法2:使用swap进行赋值vector<data_type> v1, v2; v1.swap(v2); //将v2赋...
2017-11-08 16:21:41 7251 1
原创 Go语言接口interface
接口interface接口是一个多个方法签名的集合只要某个类型拥有该接口的所有方法签名,即算实现该接口,无需显示声明实现了哪个接口,这称为Structural Typing接口只有方法声明,没有实现,没有数据字段接口可以匿名嵌入其他接口,或嵌入结构中将对象赋值给接口时,会发生拷贝,而接口内部存储的是指向这个复制品的指针,既无法修改复制品的状态,也无法获取指针只有当接口存储的...
2017-11-08 13:45:34 453
原创 Go方法method
方法methodGo中没有class,但依旧有method通过显示说明receiver来实现与某个类型的结合只能为同一个包中的类型定义方法Receiver可以是类型的值或指针(需要修改对象)不存在方法重载可以使用值或指针来调用方法,编译器会自动完成转换从某种意思上来说,方法是函数的语法糖,因为receiver其实就是方法所接收的第1个参数如果外部结构和嵌入结...
2017-11-07 09:42:14 488
原创 Go语言开发工具
LiteIDELiteIDE是一款开源、跨平台的轻量级Go语言集成开发环境(IDE)。支持的操作系统Windows x86 (32-bit or 64-bit) Linux x86 (32-bit or 64-bit)下载地址 :http://sourceforge.net/projects/liteide/files/源码地址 :https://github.com/visu...
2017-11-06 16:24:16 4114
window_lib_cef
2018-04-24
Lua_windows_5.1.4
2018-03-29
mongodb_win32_x86_64
2018-02-09
mingw-w64-get-install
2018-02-08
staruml(5.0)
2018-02-08
sqlite3_x86_dll_tool
2018-01-18
轻量级协程库_libtask
2017-12-20
windows版本的tdm-gcc
2017-11-20
Git2.1.5.0
2017-11-15
7-Zip解压缩工具.rar
2019-09-29
wampserver-apache--64b
2018-11-11
QSS_Editor
2018-09-12
Qt_Waiting_spinner
2018-07-17
poppler_0.39.0_win32
2018-06-07
快速读写excel
2018-06-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人