代码笔记:Qt无边框和目录的一些处理

做个代码笔记,下次直接复制就用了,不用再找了。我这个记忆力,也记不住几天、、、

1.无边框拖动:

1)设置无边框:

this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint);
//设置无边框,第一个参数是设置无边框。第二个参数是允许任务栏按钮右键菜单,第三个参数是允许最小化与还原。

Continue reading “代码笔记:Qt无边框和目录的一些处理”

[翻译]理解Qt容器:STL VS QTL(二)——迭代器

接上文翻译,说明在上文:理解Qt容器:STL VS QTL(一)——特性总览

 

迭代器:

在Qt关联容器中的迭代器默认指向的是关联容器的value元素,不同于STL的关联容器的迭代器默认指向一个pair<key,value>的键值相对应的pair结构。这样就取代了STL取值用的it->second这个不美观的写法,STL的接口反倒是一种象牙塔的写法。 Continue reading “[翻译]理解Qt容器:STL VS QTL(二)——迭代器”

[翻译]理解Qt容器:STL VS QTL(一)——特性总览

注:此文为翻译大牛的文章,原文地址:http://marcmutz.wordpress.com/effective-qt/containers/ (需翻墙),原文较长,我E文不是很好,而且个人时间安排,我就分段翻译发出了,这是第一篇,余下的我会慢慢补齐的。

容器类是面向对象编程的一个重要的部分,是一个而非常重要的,帮助我们去管理内存的工具。

Qt有它自己实现的容器类,十分像STL,但是还是有些差异的,一些是Qt做的补充,还有一些不能对应。作为一个Qt开发者,是非常重要的去理解什么时候去使用哪一个Qt容器类,和一些时候,你去用STL去替换QTL。 Continue reading “[翻译]理解Qt容器:STL VS QTL(一)——特性总览”

为QNetworkAccessManager添加超时提醒

在做更新,在测试异常的时候,在下载过程中,发现如果直接系统禁用了网络,会报错误,可以捕获。但是如果是第三方软件限制程序联网,问题来了。

程序会一直在那里等待,没有异常,也不发送QNetworkAccessManager::finsh和QNetworkReply::error和QNetworkReply::finsh信号。

所以动念头为下载加个超时,但是QNetworkAccessManager,QNetworkReply和QNetworkRequest都没有相关的设置函数。其实仔细想一下,也没有办法直接提供超时,因为下载的文件有大有小,网络有快有慢,什么才算超时呢。 Continue reading “为QNetworkAccessManager添加超时提醒”

QRunInfo: Qt 系统运行信息获取的一些简单封装

QRunInfo是从Qt-Installer-Framework中提取的一些系统验证和运行信息获取的一些Qt封装。我只是为部分接口整理和组织下代码。代码基于LGPL2.1和LGPL3.0协议。

QRunInfo 地址:https://github.com/dushibaiyu/QRunInfo

其中涉及Qt的core模块,gui和widget模块(主要是AdminAuthorization)有用QWidget。 Continue reading “QRunInfo: Qt 系统运行信息获取的一些简单封装”

QSsh之android版编译

今天看到有人在Qtcn.org给我留言问我QSsh的botan在android和ios 的arm下编译不通过,我就去测试了下,果然是(如果哪位哥们看到,我道个歉,前天发的,今天才看到)。以前只在win和linux下,果然arm有问题。我就去差了下原因是Botan不同平台,比同cpu和编译器的配置不同的。

所以我就去看了下QSsh用的botan的用法,他是把botan的配置那么多宏在botan.pri下根据平台和编译器进行很多定义的。仔细看了看那么多的宏和判断,而且加上我对botan不是十分的熟悉,就不敢妄自更改他的配置。我也就想了个偷懒的方法,去替换掉QSsh用的Botan,直接用自己官方下载的Botan替换掉QSsh里的Botan。 Continue reading “QSsh之android版编译”

Qt父子对象内存管理实现简析

用Qt大家都知道Qt有一套自己的内存管理机制:父子对象管理机制。适用于所有继承于QObject的类。即在一个类中指定他的父对象,可以用void QObject::setParent(QObject * parent)函数指定,也可以在构造时传入参数,一般继承自QObject的类,Qt-c自动生成的类模板的构造函数都是explicit 类名(QObject *parent = 0);这个parent就是你可以制定的父对象。当一个对象删除之后,会自动删除他的所有的子对象,这样你就可以有很多new,但是只有一个delete。(注:这个父子对象关系和继承的父子类是不一样的,而且可以说基本没关系的。)

下面我们就扒下Qt的源码,找下它的实现。 Continue reading “Qt父子对象内存管理实现简析”

Github上README.md编辑格式——Markdown格式简单说明

使用Github很久了、、自己也建过几个开源项目,但是对于README.md格式一直都是只用纯文本的,结果写出来的格式很乱也不美观、、

看别人写的都排版很好,也稍有郁闷,明明就是一纯文本而已的、、而事实上,也就是一个纯文本,只是用的Markdown格式说明而已(github据说好像对Markdown格式支持的也有扩展)。 Continue reading “Github上README.md编辑格式——Markdown格式简单说明”