
Qt杂七杂八
文章平均质量分 88
Cloud_Castle
视野多大,舞台就有多大
展开
-
使用Qt编写模块化插件式应用程序
动态链接库技术使软件工程师们兽血沸腾,它使得应用系统(程序)可以以二进制模块的形式灵活地组建起来。比起源码级别的模块化,二进制级别的模块划分使得各模块更加独立,各模块可以分别编译和链接,模块的升级不会引起其它模块和主程序的重新编译,这点对于大系统的构建来说更加实用。另一方面,对于商业目的明显的企业,各模块可以独立设置访问权限,开发成员只能访问自己负责的模块,其它模块是不能也不给看到的,这样减少了整转载 2014-10-22 09:26:42 · 2001 阅读 · 0 评论 -
Qt 动画框架
Qt动画框架由本人终于翻译完毕,这里的每个字母、每个汉字、每张图片都是有本人一个一个敲打出来的,现把它共享出来。 Qt动画框架是Kinetic项目的一部分,主要目的是提供一种简单的方法用于创建动画的和平滑的GUI。通过Qt动画属性,Qt动画框架为部件和其他QObject对象的动画操作提供了非常大的自由性。Qt动画框架也能用于图形视图框架中。 在这片文章中,我转载 2014-02-10 13:43:09 · 1715 阅读 · 0 评论 -
所有编程皆为WEB编程——Qt之后的路该怎么走
转自优快云:http://blog.youkuaiyun.com/happydeer/article/details/24105959帖原文之前,我想先说说自己一点粗鄙的看法。网络上我们经常听到这种声音:"Qt这么多优势,为什么好像用的公司就是不多呢"。你不用急着反驳我,Qt(至少目前)不是GUI的主流框架是无可非议的事实。我们可以举出很多因素来做看似合理的解释,比如"编译效率偏慢"、"动态库偏转载 2014-05-09 12:00:31 · 2391 阅读 · 0 评论 -
再谈QVector与std::vector——使用装饰者让std::vector支持连续赋值
使用Qt的容器时总是让人省心,不仅是它同时提供了C++ Style和Java Style的操作接口,并且还支持下面这样的连续赋值方式:而std::vector时显然就没有这么贴心了,对于不同且没规律的赋值,循环都不好用,只好一个个地push_back();不过好在,我们可以用装饰类为std::vector添加这个功能原创 2015-09-01 14:31:17 · 8860 阅读 · 0 评论 -
Qt属性系统详解
Qt提供了一个绝妙的属性系统。跟那些由编译器提供的属性差不多。然而,作为一个独立于编译器和平台的库,Qt不依赖于非标准的编译特性,比如__property 或[property]。Qt可以在任何平台上的标准编译器下编译。Qt属性系统基于元数据对象系统--就是那个提供了对象内置信号和槽通讯机制的家伙。声明属性需要什么要声明一个属性,需在继承自QObject的类中使用Q_P转载 2014-04-05 14:42:57 · 2470 阅读 · 0 评论 -
从零开始实现信号槽机制:二
到这里应该差不多了,总结一下。我们在上篇博文中实现的sigslot机制已经能够比较好地实现两个组件之间的解耦,但是缺点是设计库时需要针对不同参数数量的信号与链接需要重复编码,槽函数必须继承一个共同的基类等。而Qt的信号槽机制建立在其庞大的元对象体系之上,由于其信号与槽函数的参数类型可以随时随地查到,因此在传参时可以仅仅传递一个void*类型的指针,然后通过虚函数机制调用为被调类写好的qt_matecall(),就很容易对参数反向解析从而调用相应的槽函数了。基本上是以一定的性能损失换来了更高的灵活性,也算是各原创 2015-09-04 21:19:23 · 13475 阅读 · 4 评论 -
从零开始实现信号槽机制:一
我们从一个具体的问题入手:“现在有一堆按钮,用来控制一堆电器,它们之间可能是一对多,也可能是多对一,如何设计这个结构?”这里有个形象的图:为了实现组件间的控制,我们很容易想到“回调函数”,对于C++开发者,我们肯定不希望一个类自身的处理函数存在于类外,但是类成员函数中被自动添加的隐形this形参造成了函数指针调用的不匹配,于是我们想到了使用static成员函数:原创 2015-09-04 13:49:30 · 7615 阅读 · 7 评论 -
再谈QVector与QByteArray——Qt的写时复制(copy on write)技术
我们在之前的博文QVector的内存分配策略 与再谈QVector与std::vector——使用装饰者让std::vector支持连续赋值简单聊了聊QVector内存分配和赋值方面的一点东西,今天接着从QVector展开谈谈Qt的写时复制技术...原创 2016-01-28 23:00:01 · 11680 阅读 · 1 评论 -
QVector的内存分配策略
我们都知道 std::vector 作为动态数组在所分配的内存被填满时,如果继续添加数据,std::vector 会另外申请一个大小当前容量两倍的区域(如果 n > size 则申请 n+当前容量 的空间),然后把当前内容拷贝到新的内存,以达到动态扩容的效果: size_type _M_check_len(size_type __n, const char* __s) const原创 2015-08-12 21:25:54 · 13910 阅读 · 4 评论 -
Qt5 Android程序黑屏问题解决
那个始终黑屏的工程建立之前NDK配置路径出了错的,当时编译不过,改了路径之后能编译过只是黑屏就没管它了。然后运行别人的程序都没问题,这个程序改来改去还是黑屏。于是我重新建了个工程,和那个黑屏程序写的一模一样,成功运行了。。。。。不知道是IDE的漏洞还是什么。。。。搞了我一天,蛋疼。。。原创 2014-01-23 10:57:35 · 2054 阅读 · 0 评论 -
Qt4样式表
[翻译][Qt Quaterly]通过Qt4.2样式表定制程序外观本文翻译自Qt季刊(Qt Quaterly)第20期。原文地址: http://doc.trolltech.com/qq/qq20-qss.html译文地址:http://linuxstudy.cn/notes/show_note.php?name=qq20-qss 贴到论坛后,格式有点混乱,图片也没了,可以到上面的译文转载 2014-09-25 11:56:18 · 1875 阅读 · 0 评论 -
Qt-configure参数说明
当进入解压好的源码包后,使用./configure –help命令,可以获得相应帮助,那我们只要选取参数部分看看-release这个参数显而易见,就是编译Qt以发布版的模式进行,一般来说,最后系统完成后,库就应该是发布版。-release与上面对应,自然是调试版了,如果开发的话,可以选择它吧。-debug-and-release囧,上面那两个的儿子。转载 2014-09-06 15:42:45 · 2660 阅读 · 0 评论 -
QPixmap、QImage、QBitmap和QPicture的区别
·QImage与Qpixmap的区别 1、QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,QImage主要是为图像I/O、图片访问和像素修改而设计的 2、QPixmap依赖于所在的平台的绘图引擎,故例如反锯齿等一些效果在不同的平台上可能会有不同的显示效果,QImage使用Qt自身的绘图引擎,可在不同平台上具有相同的显示效果转载 2014-05-19 15:57:23 · 9024 阅读 · 1 评论 -
Qt Creator 重要的快捷操作
注:原文来自百度经验,但是某些操作与Qt Creator3.0已有出入,故整理与此。欢迎添加和指正。为什么大神敲代码比我们快?他们并不是钢琴手,只是快捷键用的比我们熟~1 . Ctrl(按住)+ Tab快速切换已打开的文件2 .快速添加方法定义,将光标移动到h文件中的方法声明。按Alt(按住)+ Enter,将出现如下三个选项。第原创 2014-04-27 14:32:59 · 2718 阅读 · 0 评论 -
Qt中Q_PROPERTY定义属性以及属性的使用
[cpp] view plaincopyQ_PROPERTY(type name READ getFunction //属性名 [WRITE setFunction] //读函数 [RESET resetFunction] [NOTIFY notifySignal] [DESIGNABLE bool] [SC转载 2014-04-05 11:58:15 · 9940 阅读 · 3 评论 -
QT 多线程程序设计
QT通过三种形式提供了对线程的支持。它们分别是,一、平台无关的线程类,二、线程安全的事件投递,三、跨线程的信号-槽连接。这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势。多线程编程也是一个有用的模式,它用于解决执行较长时间的操作而不至于用户界面失去响应。在Qt的早期版本中,在构建库时有不选择线程支持的选项,从4.0开始,线程总是有效的。线程类Qt 包含下面一些转载 2014-03-15 14:49:18 · 1640 阅读 · 0 评论 -
Qt、Qte、qtopia的区别
Qt的授权是分为两条线,商业版和开源版。如果使用商业版的Qt,那么开发出的程序可以是私有的和商业的;如果使用的是开源版的Qt,由于其使用的是GPL协议,那么可发出的程序也必须是GPL的。不过自从qt 4.5.0版本,诺基亚公司使用了LGPL协议,那么写出的程序就可以据为己有了!Qt 的版本是按照不同的图形系统来划分的,目前分为四个版本:Win32版,适用于Windows平台转载 2013-12-29 18:57:39 · 2378 阅读 · 0 评论 -
QT中的随机函数的用法
原文地址:QT中的随机函数的用法作者:信念首先是初始化:qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));接着就可以随机了:qrand()理论上返回0 到 RAND_MAX间的值。如果要返回0~n间的值,则为:qrand()%n;如果要返回a~b间的值,则为:a + qrand() % (b - a)这里介绍2种方法转载 2014-03-19 11:22:06 · 2609 阅读 · 0 评论 -
Linux下QT串口通过无线模块收发十六进制数据
前段时间写了一个关于Vimi-Net简要的收发码以及CRC校验的博客(http://blog.youkuaiyun.com/u011348999/article/details/16803829)然后一直说把QT串口与Vimi-net的联机调试做一个总结。。结果一直拖到现在,人太懒了真不是件好事。。好了废话少说,我们进入正题。 我用的是广泛通用的yafeilinux所做的QT串口第三方类。没有看过原创 2013-11-28 18:46:27 · 4634 阅读 · 2 评论 -
可能是最难围住的神经猫——寻找必胜路径的算法实现
标题借鉴了一下老罗的风格,哈哈(*^__^*) 原来围住神经猫游戏刚火的时候,恰巧当时正在学QML,顺手就给弄了一个,不知道大家还记不记得这个游戏,界面是酱紫的:然后在 Qt 贴吧里面也共享了一下:http://tieba.baidu.com/p/3241650033因为当时做这个的时候主要是想练下 QML,所以草草弄了个随机方向选择算法(应该没资格叫算法吧...),然后这只小猫就蠢得不要不要的...原创 2015-08-31 01:20:55 · 13974 阅读 · 21 评论