自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (8)
  • 收藏
  • 关注

原创 Qt Testlib 测试GUI(2)

通过eventlist 模拟多个event,测试widget 对event的处理情况。class TestGui:public QObject { Q_OBJECT private slots: void testGui_data(); void testGui(); };和之前测试function的方式一样,创建testcase

2014-01-01 08:19:54 958

原创 Qt Testlib 测试GUI(1)

Qt Testlib 提供一种机制模拟native的event,发送event到GUI的widget上,测试widget对event的响应。测试QLineEdit classTestGui:public QObject { Q_OBJECT private slots: void testGui(); }; void Test

2014-01-01 07:36:49 1715

原创 Qt Testlib 基本使用 (2)

数据启动测试,在一个测试用例上添加多个数据,运行多次的测试用例。添加一组数据:QCOMPARE(QString("hello").toUpper(),QString("HELLO"));QCOMPARE(QString("Hello").toUpper(),QString("HELLO"));QCOMPARE(QString("HELLO").toUpper(),

2014-01-01 07:09:32 1517

原创 Qt Testlib 基本使用 (1)

Qt Testlib 基本功能就是测试class的功能函数。 这个class 必须继承自QObject。 包含Qt Testlib的头文件#include classTestQString:public QObject { Q_OBJECT private slots: void toUpper(); }; 使用Qt

2013-12-31 12:28:03 2958

原创 gstreamer 开发 (1)

如何使用gstreamerGstreamer 提供了一组开发多媒体应用的APIS,基于APIs 我们可以开发大量的多媒体应用。通过Gstreamer也提供了gst-launch 我们可以很简单的将gstreamer的elements串联起来,不需要些任何的code ,实现基本的多媒体功能。 Gstreamer 使用的开发语言gstreamer 通过C语言实现,主要遵循GLIB的

2013-12-24 08:41:50 839

原创 gstreamer 基本描述

gstreamer 是一个优秀的多媒体框架。目前支持的平台有:Android,iOS,Mac OS X 和 Windows.gstreamer 支持android 确实很厉害。 通过gstreamer我们可以很容易的搭建出多媒体应用程序。但是由于gstreamer的通用性,多模块等特性,通常实现一个多媒体应用也不是十分容易。同样对于嵌入式设备实现硬件的编码解码 pl

2013-12-24 07:46:34 724

原创 使用qml 实现简单的播放器(4)

最后添加一些动画效果,以及附件功能。如果感兴趣可以学习一下qml 很简单的学习,可以实现比较复杂的功能。整体的代码如下:import QtQuick 2.0import QtMultimedia 5.0Rectangle {    id: playerUI    width: 800    height: 600    state: "hiden

2013-12-23 16:56:18 2123

原创 使用qml 实现简单的播放器(3)

基于之前的播放器,添加获取视频,音频等信息。代码如下Column {  // 基本的布局工具,将下面的文本以列表的方式显示。其中只显示了几个属性,实际上可以显示很多的属性            width: parent.width/3            height: parent.height            Text {             

2013-12-23 16:53:49 1258

原创 使用qml 实现简单的播放器(2)

基于之前的播放器添加一些新内容。添加一些image,显示出播放,暂停,快进,快退 等功能按键。代码如下:mport QtQuick 2.0import QtMultimedia 5.0Rectangle {    id: playerUI    width: 800    height: 600    color: "black"     Mouse

2013-12-23 16:46:07 1562

原创 使用qml 实现简单的播放器(1)

使用qml 简单实现一个播放器。实现引用需要的模块qtquick 模块和multimedia 模块import QtQuick 2.0import QtMultimedia 5.0下面创建一个黑色的矩形区域用于显示视频,代码如下:Rectangle {    id: playerUI    width: 800    height: 600

2013-12-23 16:24:45 1725

原创 Qt5 设置plugin(设备)

1. Command line:   ./myapp -plugin tslib:/dev/mydevice2. Environment variable:   export QT_QPA_GENERIC_PLUGINS=tslib:/dev/mydevice

2013-12-18 13:49:48 2035

原创 Qt multimedia 开发方法

Qt multimedia 支持与其他模块的开发方式一样。支持widget 模式和 qml 模式开发。目前在Qt中开发的新模块都会支持 widget 和 qml 2种方式来开发。QML的开发原则是使用QML自己的语法+JS开发程序逻辑。使用QML开发对于不熟悉c++的工程师而熟悉js的程序员是个非常好的选择。QML简单好学习,几乎一周的时间就可以使用qml开发程序了。

2013-12-13 10:32:25 4214

原创 Qt Multimedia 描述

概述:Qt 通过Qt Multimedia 模块提供多媒体功能。Qt multimedia模块基于不同的平台抽象出多媒体接口来实现平台相关的特性和硬件加速。接口功能覆盖了播放视频音频,录制视频音频,其中包括多种多媒体封装格式,同样支持类似于 camera,耳机,麦克风等设备。特性:下面列举一些通过Multimedia APIs可以实现的功能:访问音频输入,输

2013-12-12 11:35:07 3517

原创 Qt Multimedia 介绍和环境搭建

Qt Multimedia 在Qt5 中发生了很大的变化,在Qt5 中针对multimedia部分做了全新的修改,使用新的digia 自己的 Qt QMultimedia 框架进行实现。主要支持的平台是 android, linux, windows。在Andorid 中Qt 通过JNI 接口实现Multimedia 功能。(如果在Android中移植了gstreamer,通过可以调用gs

2013-12-12 10:37:59 12179

原创 QML - 可视元素 Text

QML - Text 用于显示文本信息,具有只读属性。Text可以处理Html格式文本和普通文本,Text默认会尝试把所有的问题放到一行显示。我们可以通过设置width, height 属性或者设置WrapMode 来改变默认属性。下面看看他的属性信息。<!--p, li {white-space:pre-wrap}-->baseUrl :

2013-07-10 17:14:11 988

原创 QML - 可视元素 Image

Image 和他的名字一样,在QML 中用来现实一个图片。在实现一下UI的过程中,使用贴图是最简单的方法。Qt lib 支持的静态图片格式类型,Image 都可以支持如bitmap, png, jpg, svg 等等。Image 支持大尺寸的图片,但是大尺寸的图片解码的速度和内存的使用如何平衡那,看看Image 为我们提供了那些功能。同时Image 支持加载本地图片和网络图片

2013-06-21 16:36:25 2075

原创 QML - 可视元素 Rectangle (2)

Rectangle 是qml中最基本的类型,而且我们也能看到基本上所有的qml 可视元素都是方块的,如果需要使用一个圆形或者三角形都不是很容易。在使用Rectangle 中一般都是嵌套使用各种可视元素,而且这些元素的嵌套规则与之前的widget 嵌套的规则一样,存在着父子关系。语法结构中上层的元素就是下层元素的父亲,父元素维护着子元素的生命周期。现在是一个简单的嵌套使用可视元素的例

2013-06-21 11:22:32 1548

原创 QML - 可视元素 Rectangle (1)

Rectangle 就和它的意思一样,就是画一个实心的方形,几乎所有的QML 可视元素都是一个方形,如果想做一个类似圆形,三角形或者多边形都不是特别容易。Item 是Rectangle的父类,所以Item所有的属性在Rectangle都有效,而且Rectangle 是可见的。除了Item内部的一些属性,在Rectangle 里面也有一些自己的属性:Rectangle可以具有一个边框,并

2013-06-13 12:35:00 1588

原创 QML - 可视元素类型 - item

item 本身不是一个可视类型,但是item 是所有可视元素的基类。由于item 是可视元素的基类,所以item 具有很多关于UI和输入输出的属性和方法下面一一记录<!--p, li {white-space:pre-wrap}-->activeFocus : bool 只读属性,通过activeFocus可以获取focus是否在当前的element上,如果

2013-05-28 17:26:18 1419 1

原创 QML 基础类型 vector 和 matrix

vector2D vector3D vector4D 和 matrix4x4 是QML中与opengl相关的一些基础类型。vector2D vector3D vector4D几乎具有一致的借口和函数,主要用于保存一个点的信息。matrix4x4 用来表示具有16个元素的数组,主要用来做opengl中的matrix计算,如修改坐标系,旋转,移动等操作。vector*D 常用的函数

2013-05-28 14:59:09 1803 1

原创 QML 基础类型 - font

QML 基础类型 font 主要应用在需要UI 中显示文字的时候,设置需要使用的字体,字库,和其他属性。这个是我Qt 目录下的字体文件:fixed_120_50.qpf       helvetica_100_75.qpf   helvetica_140_50i.qpf  helvetica_180_50.qpf   helvetica_240_75i.qpf  helvetica_80_

2013-05-28 13:04:11 2205

原创 QML 基础类型 - color

color 是QML 中非常中的类型,用color 可以描述可见的elements的颜色信息在Qt 中使用red, green,blue, alpha 来表示一个颜色在初始化color的时候我们可以使用2种方式 #RRGGBB 和 #AARRGGBB, 每个颜色的元素占8位一个字节。在Qt 中不使用yuv 数据。下面是一个使用color的example:import Q

2013-05-24 17:18:34 803

原创 QML 基础类型 - size

size 是QML 的一个基础类型,具有 width 和 height 属性。可以用于表示图片,窗体的尺寸。使用 size。见examplesimport QtQuick 2.0Rectangle {  // 基本类型,生成一个矩形    width: 360  //矩形宽    height: 360 //矩形高    color: "lightblue" //矩

2013-05-24 16:53:15 708

原创 QML 基础类型 - Rectangle

Rectangle 是QML 中使用最频繁的基础类型.当我们想定义自己的类型或者 element的时候,Rectangle 是一个很好的起点。(通过rect 做为基础)下面的example 使用rect的属性来控制 rect 的外观import QtQuick 2.0Rectangle {  // 基本类型,生成一个矩形    width: 360  //矩形宽

2013-05-24 16:37:48 1053

原创 QML 基础类型 - point

QML 基础类型 pointpoint 类型是具有x, y 属性的数据结果。用于表示平面的一个点。import QtQuick 2.0Rectangle {  // 基本类型,生成一个矩形    width: 360  //矩形宽    height: 360 //矩形高    color: "lightblue" //矩形内部颜色    property poin

2013-05-24 15:48:22 1679

原创 QML 基础类型 - date

Qt Quick 提供了很多的基础类型用于开发QML 应用。通过下面这条指令来倒入Qt Quick 提供的数据类型<!--p, li {white-space:pre-wrap}-->import QtQuick 2.0下面简单描述一下Qt Quick 的基础类型data - 用于处理日期操作。 需要使用如下格式用于初始化 “yyyy-mm-dd”

2013-05-24 15:36:31 1080

原创 什么是Qt Quick

Qt Quick  是开发Qml应用的标准lib。在开发qml应用时 第一行代码就是 import  QtQuick.Qt Quick 为Qml应用开发提供了基本的element, qml 引擎和基本的语法支持。Quick 是 Qt UI  creation Kit 的缩写,可见Qt Quick 主要就是用来开发应用的UI 程序。具体提供了哪些功能:1) canvas 开发方式与j

2013-05-24 14:01:43 888

原创 从小工到大工9

并发的问题在现代程序中是肯定会有的,如果开始的时候在设计阶段就考虑不会出现多线程可能到最后就是一个设计错误,修改起来的代价不可想象,现在的项目中就是这样,郁闷中,无法改变别人的想法。在c++的开发中,考虑使用类来避免线性调用的问题。 一般在设计的工程中都是考虑线性的,在c++可以基于oo来做,但是实际上对于人的思考方式还是很难摆脱线性思考的方式。最近看到很多soa的文章,感觉还是很

2007-08-19 13:07:00 392

原创 从小工到大工8

在写程序的时候都要使用配置来让程序更加灵活。一般来说可以将配置放在数据库中,也可以放在配置文件中。如果通过读取数据库或者配置文件来实现对启动时对系统的初始化。如果在系统运行的时候写入参数确实十分复杂,之前没有参与过在运行时修改系统参数的。真希望能看到,可能在使用微内核的情况可以使用到吧。 

2007-08-19 12:57:00 382

原创 从小工到大工7

资源管理:对于一个程序最可怕的就是资源泄漏,其中最可怕的觉得是进程线程或者文件的句柄没有被回收,这样的错误对我来说真的很可怕也很难发现。之前在维护一个系统的时候,因为有人在写程序的时候使用了tmp目录,并在tmp下面 创建了文件。系统的反映时运行几天之后,系统突然无法登陆,在过一段时间系统无法提供服务。因为无法登陆服务期所以根本不知道发生了什么。使用了2天的时候和运气才发行这个错误

2007-08-18 12:13:00 433

原创 从小工到大工6

异常处理:当前的情况:在我接触的所有的c++项目中几乎没有使用过异常 。唯一一次使用异常的时候是基于occi来开发程序,因为在occi中具有异常的机制,所以无论如何都要付出检查异常的代价,所以就使用了异常,但是使用异常的时候一个很的作用其实是记录为什么出现异常进而查找错误。在occi的外面都没有处理异常,而是我将occi的异常封闭在我自己做的一个类里面。反思:一直不使用异常是因为一直有一个

2007-08-18 11:59:00 432

原创 从小工到大工5

 检查函数正确性的问题:这个问题考虑了很多次,在过去写的程序里面没有统一的做法。考虑如果调用者负责输入参数的正确性,就要求接口足够简单,这样可以很容易的判断输入的正确性。而如果接口不够简单这样的假设无法成立,因为只有调用者十分熟悉接口才能正确的输入参数。反过来说这个是个矛盾,如果接口复杂是接口设计者的问题。而接口足够简单又有谁能保证哪。考虑如果接口实现者提供输入参数的检查,调用者会

2007-08-18 11:27:00 375

原创 从小工到大工4

调试:在之前的项目中,确实期限马上到期, 会具有压力,推卸责任。当出现错误,通常的一句话“这里不可能有问题”,有了这样的态度是不可取的。既然发生了就是说明确已经有了问题。要证明下的结论。反思:摆正态度,做好工作。不要假设,要证明,一般来说刚加入代码,出现问题,都会与刚刚加入的数据有直接或者间接的关系。

2007-08-12 11:17:00 369

原创 从小工到大工

正交的好处:正交很重要,如果整个系统都是正交的,那系统的错误造成的影响就会好一些。非正交的负担:通过之前的经验,当发生非正交的时候就将所有的非正交的类作为一个模块而存在,所有的东西都内聚到模块中,但是这样的设计是不对的,因为一些不相关的东西都进入都模块中,这个模块自己都无法说清楚他自己是做什么的。 正交的优势:可以将不同的模块分开,当销售软件成品时客户可以自己定制需要使

2007-08-11 11:54:00 491

原创 从小工到大工2

注意项目的大图景:关注大的图景,人和项目都一样不能因为局部的问题而放弃大局观。反思:之前因为同事们做错了一些事情,就极力的要求同事做修改.1 没有考虑为什么出现错误和修改的难度或者这到底是不是一个错误。2 没有考虑其他人的感情,一味的要求会破坏自己和同事的心情。3 应该做团队的催化剂,让所有人都凝聚起来,提供效率,这个也是员工很大的价值。 

2007-08-11 11:13:00 375

原创 小工到大工1

敢于承担错误:曾经为了得到经理同事的认可而掩饰自己的错误,曾经为了让客户满意我们的产品而避开我们已知的错误。这样的情况总是发生,而在发生的时候我们又付出了很多的成本或者努力,而这样的努力是不值得推崇的。反思:因为自己想掩饰错误而给项目增加成本是不道德的。 已知的错误:已知的错误而不去修改是道德问题。当发现了一个程序错误,或者设计上的错误 而不去修改它是不道德的。这个

2007-08-11 11:05:00 417

原创 目前系统中的问题

1 计划没有起到作用,设计人员没有与程序员沟通。2 不能及时发现设计中的问题,也就是没有对设计本身做测试。3 当发现问题时没有解决,而是考虑成本放弃了,但是成本真的很高吗?如果系统问题扩展到无法控制又要如何去修改?4 虽然书写了编码规范但是由于编码规范有100页,它的价值又在那里?有人会去看他并将他应用吗?又如何记得100页的规范,将自己的习惯适应这100页的规范?5 新手太多。 6

2007-08-11 10:44:00 455

STL 源码剖析

pdg格式的,质量一般,但是是简体中文的,需要的朋友可以下载,我正在看,感觉质量还是可以让人看下去的

2007-04-23

multi paradigm design for c++

c++方面关于设计方式的书也很错.

2007-04-10

advanced programming in the unix environment 2ed

unix环境下开发的圣经,却是很不错,而且是最新版本,英文也很容易看的明白.

2007-04-10

O\'Reilly[1].Network.Security.with.OpenSSL.pdf

讲解安全协议openssl的,也许之后ssl是一个大的方向

2007-04-10

Introduction to Algorithms 2nd Edition

英文版2版,算法导论

2007-04-06

linux programming

2007 linux 编程新书.

2007-04-06

effective c++ 3e

这个就不用介绍了,图书太贵了,还是看电子的好.

2007-04-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除