自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

时间在哪 成就就在哪

几字只言岂能描述之清。。

  • 博客(51)
  • 资源 (15)
  • 收藏
  • 关注

原创 Qt QVariant类

这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用。比如我们的 table单元格可以是string,也可以是int,也可以是一个颜色值,那么这么多类型怎么返回呢?于是,Qt提供了这个QVariant类型,你可以把这很多类型都存放进去,到需要使用的时候使用一系列的to函数取出来即可。比如你把int包装成一个QVariant,使用的时候

2012-12-17 21:40:38 1425

原创 Qt多线程

前言Qt对线程提供了支持,基本形式有独立于平台的线程类、线程安全方式的事件传递和一个全局Qt库互斥量允许你可以从不同的线程调用Qt方法。警告:所有的GUI类(比如,QWidget和它的子类),操作系统核心类(比如,QProcess)和网络类都不是线程安全的。QRegExp使用一个静态缓存并且也不是线程安全的,即使通过使用QMutex来保护的QRegExp对象。启用线程支持

2012-12-16 22:40:27 1389

转载 Qt下的OpenGL 编程(12)阶段学习总结

学习OpenGL也有半个多月了,收获了很多,对3D的东西也有了初步的了解。        选用的平台是Ubuntu+Qt,因为为它非常的简单。        学到后面,其实更觉得学习的东西和平台是没有多大关系的,不管你是在windows下还是Linux下,用VS还是QtCreater,重要的是实现你想要的东西,没必要找一个多么庞大的框架来实现只要几条语句就能实现的效果。

2012-12-15 20:42:34 867

转载 Qt下的OpenGL 编程(10)Solar System

一、提要 今天的内容是OpenGL的编程实践—太阳系的模拟! 红宝书上有相应的教程,但这里我们要实现得更全面一些。iPad上有一个很棒的应用,名字叫Solar System,我们尽量去达到它的效果。 先来看一下最终效果:  、思路: 建立9个球体,分别赋予不同的材质,再通过动画不断变换它们的位置,就可以实

2012-12-15 20:36:12 2087

转载 Qt下的OpenGL 编程(9)3D视图变换、旋转的地球

一、提要 视图变换是3D图形中的一个很重要的概念,需要一些抽象的思维去理解。说完概念之后我们会写一个自旋转的地球的例子来帮助理解。二、照相机比喻在《OpenGL Programming Guide 》中将所有的3D变换统一到一个有意思的现实世界模型,照相机比喻。1.确定照相机的位置的过程对应于“视图变换”(Viewing Transformations)

2012-12-15 20:35:04 3994

转载 Qt下的OpenGL 编程(8)文字、FPS、动画

一、提要 今天的学习内容是在OpenGL的窗口中显示文字,实现FPS的显示,还有OpenGL中动画的实现。二、HelloWorld 关于位图文字的显示,nehe的教程只在windows下实现了,而相关了Linux下的实现也需要借用其他的库,编程指南看了之后头更加大,于是我翻开了Qt帮助...... 在QGLWidget的说明文档里,很幸运地找到了这个函数: void QG

2012-12-15 20:32:40 4483

转载 Qt下的OpenGL 编程(7)顶点数组和显示列表

一、提要 OpenGL作为一个高性能的图形接口,性能能肯定是放在第一位的了,现在的移动平台也是OpenGL ES,这对性能的要求就更高了,今天我们要接触到的这两个东西—顶点数组和显示列表都是用于实现高性能绘图的手段。 下一篇教程我打算去做一个一个3D漫游的例子,会用到今天的技术。二、顶点数组 在之前的几篇教程中,有时候绘制一

2012-12-15 20:31:15 1735

转载 Qt下的OpenGL 编程(6)混合、雾、抗锯齿

一、提要 混合:对颜色进行混合,实现像“半透明”一样的效果。 抗锯齿:使直线和多边形的锯齿状边缘变得平滑。 雾:创建具有大气效果的场景。二、混合 混合的最终效果是使场景看上去像是半透明的。 一个通俗的方式来解释混合的话,例如透过绿色的玻璃观察一个物体,我们看到的颜色部分来自于玻璃的绿色,部分来自于物体的颜色。这两种颜色所占

2012-12-15 20:30:09 1652

转载 Qt下的OpenGL 编程(5)光照和纹理滤波

一、提要 今天在网上看到一个消息,芬兰IT服务公司Digia Oyj称,公司将会出资400万欧元购买诺基亚旗下QT软件业务芬兰IT服务公司Digia Oyj称,公司将会出资400万欧元购买诺基亚旗下QT软件业务。 据我所了解,Qt算是一个非常优秀的团队,希望Qt离开Nokia之后能够发展得更好吧。 经过了上一篇的教程,我们对3D世界已经有

2012-12-15 20:27:05 1197

转载 Qt下的OpenGL 编程(4)进军3D世界

一、提要 有了前面的基础,我们今天就可以进军3D世界了。 今天我们可以学到的是:在三维空间上建立空间物体,纹理贴图。二、openGL坐标系 OpenGL使用右手坐标,从左到右,x递增,从下到上,y递增,从远到近,z递增。 OpenGL坐标系可分为:世界坐标系和当前绘图坐标系。 世界坐标系以屏幕中心为原点(0, 0, 0)

2012-12-15 20:24:52 880

转载 Qt下的OpenGL 编程(3)绘制平面几何体

一、 提要 之前的一篇教程已经搭建好了Qt下的OpenGL的编程环境,几天要来学习的就是OpenGL的2D绘图。2D作为绘图的基础,还是很值得去好好学习,比如迪卡尔坐标,透视设置等等,而所谓的3D,也只是在2D的基础上加上了Z轴。 这篇教程主要包括基本2D图元的绘制,着色,旋转。二、必须要了解的几个函数gluPerspective(GLdo

2012-12-15 20:23:57 1468

转载 Qt下的OpenGL 编程(2)动手搭建Qt下的OpenGL编程框架

一、    提要    在前面的一篇文章我们已经配置好了opengl的编程环境,今天要做的就是搭建一个Qt的编程框架,方便后面的学习。这一节会涉及到一些OpenGL的基础方法,多用手册和搜索引擎去理解。二、   框架结构    项目的结构如下图。    主要的思路是:mainwindow类用来处理程序的逻辑和交互,nehewidget是继

2012-12-15 20:20:22 1047

转载 Qt下的OpenGL 编程(1)Qt下的OpenGL编程必须步骤

一.前言         暑假在家里花了些时间了研究了Ogre,基本是每天一篇wiki教程。最后做完了初级教程后觉得自己进行不下去了,因为里面还有挺多东西都每有理解,所以想来接触一下更“低端”一些的东西。        要开源,当然是OpenGl了,跨平台的话,就用Qt咯,其实大三那会有花时间去研究过,但当时要应付可爱的专业课,自己的水平也很一般,研究到了纹理贴图就止步了。

2012-12-15 20:18:23 926

转载 OpenGL进阶(二)样条曲线的绘制

Cardinal样条曲线这个比较简单,一个终点,一个起点,两个控制点。终点和起点中间的点靠插值实现,插值函数:P(u)=Pk-1(-s*u*u*u+2s*u*u)+Pk[(2-s)u*u*u+(s-3)u*u+1]+Pk+1[(s-2)*u*u*u+(3-2s)*u*u+s*u]+Pk+2(s*u*u*u-s*u*u)代码实现:[cpp] v

2012-12-15 20:16:41 1382

转载 OpenGL进阶(二)自定义矩阵加载

opengl里面的平移,旋转,缩放都是基于矩阵的运算,我们可以很方便地通过设定参数的方式调用一些接口函数来实现,同时我们也可以通过自定义的矩阵来实现上述的基本变换。首先来看一个渲染程序。[cpp] view plaincopyGLfloat rtri;                          GLfloat posX;

2012-12-15 20:12:57 1494

转载 OpenGL进阶(一)多视口

提要OpenGL视口(Viewport)可以看作是窗口中OpenGL的绘制输出区域,可以通过一条简单的glViewport命令设置。一般的OpenGL教程都是单视口,即整个窗口为惟一的一个视口,Nehe的OpenGL教程是我最早见到涉及多视口的。与单视口程序相比,多视口程序的变化主要是:(一)多视口程序不能在窗口resize/reshape时直接调用glViewport,而应该在此

2012-12-15 19:27:02 1309

原创 Qt 计时器与随机数

近期身边很多的初来接触Qt的朋友们都在咨询一个很小的问题,就是Qt中的计时器怎么实现?计时器有什么在Qt中到底有什么用途?还有和计时器关联比较密切的随机数在Qt中又是怎么实现的?其实,其实啊。细心的朋友会发现,Qt中的很多类都和为我们打基础的其他编程语言中的库函数的功能是一样的,有的甚至连类的名称都是一样的, 其实说到底,Qt也是基于C++的。自然,很多Qt中的类函数在C/C++中都是可以找到影子

2012-12-10 18:23:18 4825

原创 QProcess 进程类—调用外部程序

QProcess进程类        Qt提供了一个QProcess类用于启动外部程序并与之通信,启动一个新的进程的操作非常简单,只需要将待启动的程序名称和启动参数传递给start()函数即可.        例如: QObject *parent; QString program = "tar" QStringList arguments; arg

2012-12-10 17:34:31 28358 4

转载 利用Qt Phonon框架制作音视频播放器

Phonon严格来说其实非为Qt的library,Phonon原本就是KDE 4的开放源代码多媒体API,後来与Qt合并与开发,所以简单来说就是Qt使用Phonon这个多媒体框架来提供一般影音多媒体档案的播放,而这些影音多媒体来源可以是档案、网路串流或是指到一个档案的QUrl。Phonon是一个跨平台多媒体框架,能够在Qt应用程式中使用与播放影音多媒体内容。Phonon的架构  整体来

2012-12-09 18:25:25 2639

原创 继承修饰符public、private、protected

1.   private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。 2.   protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。 3.   public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。 4.   注:友元函数包括3

2012-12-09 17:41:24 751

原创 Qt 之路 (20)—事件的接收与忽略

本章内容也是关于Qt事件。或许这一章不能有一个完整的例子,因为对于事件总是感觉很抽象,还是从底层上理解一下比较好的吧!前面说到了事件的作用,下面来看看我们如何来接收事件。回忆一下前面的代码,我们在子类中重写了事件函数,以便让这些子类按照我们的需要完成某些功能,就像下面的代码:void MyLabel::mousePressEvent(QMouseEvent * event){if(

2012-12-09 14:32:51 950

原创 Qt 之路 (19)—事件(Event)

前面说了几个标准对话框,下面不打算继续说明一些组件的使用,因为这些使用很难讲完,很多东西都是与实际应用相关的。实际应用的复杂性决定了我们根本不可能把所有组件的所有使用方法都说明白。这次来说说Qt相对高级一点的特性:事件。事件(event)是有系统或者Qt本身在不同的时刻发出的。当用户按下鼠标,敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件是在对用户操作做出响应的时

2012-12-09 14:26:59 927

原创 Qt 之路 (18)—标准对话框之QInputDialog

这是Qt标准对话框的最后一部分。正如同其名字显示的一样,QInputDialog用于接收用户的输入。QInputDialog提供了一些简单的static函数,用于快速的建立一个对话框,正像QColorDialog提供了getColor函数一样。首先来看看getText函数:bool isOK;QString text = QInputDialog::getText(NULL, "Input

2012-12-09 14:18:20 1405

原创 Qt 之路 (17)—标准对话框之QMessageBox

这次来说一下QMessageBox以及类似的几种对话框。其实,我们已经用过QMessageBox了,就在之前的几个程序中。不过,当时是大略的说了一下,现在专门来说说这几种对话框。先来看一下最熟悉的QMessageBox::information。我们在以前的代码中这样使用过: QMessageBox::information(NULL, “Title”, “Content”, Q

2012-12-09 14:12:29 1562

原创 Qt 之路 (16)—标准对话框之QColorDialog

继续来说Qt的标准对话框,这次说说QColorDialog。这是Qt提供的颜色选择对话框。使用QColorDialog也很简单,Qt提供了getColor()函数,类似于QFileDialog的getOpenFileName(),可以直接获得选择的颜色。我们还是使用前面的QAction来测试下这个函数:    QColor color = QColorDialog::getColor(Q

2012-12-09 12:47:25 798

原创 Qt 之路 (15)—标准对话框之QFileDialog

《 Qt之路 》已经写到了第15篇,然而现在再写下去却有点困难,原因是当初并没有想到会连续的写下去,因此并没有很好的计划这些内容究竟该怎样去写。虽然前面说过,本教程主要线路参考《C++ Gui Programming with Qt 4, 2nd Edition》,然而最近的章节由于原文是一个比较完整的项目而有所改变,因此现在不知道该从何写起。我并不打算介绍很多组件的使用,因为Qt有很多组件,各种

2012-12-09 12:40:59 744

原创 Qt 之路 (14)—状态栏

今天的内容主要还是继续完善前面的那个程序。我们要为我们的程序加上一个状态栏。状态栏位于主窗口的最下方,提供一个显示工具提示等信息的地方。一般地,当窗口不是最大化的时候,状态栏的右下角会有一个可以调节大小的控制点;当窗口最大化的时候,这个控制点会自动消失。Qt提供了一个QStatusBar类来实现状态栏。Qt具有一个相当成熟的GUI框架的实现——这一点感觉比Swing要强一些——Qt似乎

2012-12-09 12:33:20 1695

原创 Qt 之路 (13)—菜单和工具条(续)

前面一节我们已经把QAction添加到菜单和工具条上面。现在我们要添加一些图片美化一下,然后把信号槽加上,这样,我们的action就可以相应啦!       首先来添加图标。QAction的图标会显示在菜单项的前面以及工具条按钮上面显示。为了添加图标,我们首先要使用Qt的资源文件。在QtCreator的项目上右击,选择New File…,然后选择resource file。然后点击ne

2012-12-09 12:29:18 906

原创 Qt 之路 (12)—菜单和工具条

在前面的QMainWindow的基础之上,我们开始着手建造我们的应用程序。虽然现在已经有一个框架,但是,确切地说我们还一行代码没有写呢!下面的工作就不那么简单了!在这一节里面,我们要为我们的框架添加菜单和工具条。就像Swing里面的Action一样,Qt里面也有一个类似的类,叫做QAction。顾名思义,QAction类保存有关于这个动作,也就是action的信息,比如它的文本描述、图标、快捷键、

2012-12-09 12:13:29 702

原创 Qt 之路 (11)—QMainWindow

尽管Qt提供了很方便的快速开发工具QtDesigner用来拖放界面元素,但是现在我并不打算去介绍这个工具,原因之一在于我们的学习大体上是依靠手工编写代码,过早的接触设计工具并不能让我们对Qt的概念突飞猛进……       前面说过,本教程很大程度上依照的是《C++ GUI Programming with Qt4, 2nd Edition》这本书。但是,这本书中接下来的部分用了很大的篇幅完成了

2012-12-09 12:05:47 750

原创 Qt 之路 (10)—Meta-object系统

前面说过,Qt使用的是自己的预编译器,它提供了对C++的一种扩展。利用Qt的信号槽机制,就可以把彼此独立的模块相互连接起来,不需要实现知道模块的任何细节。为了达到这个目的,Qt提出了一个Meta-Object系统。它提供了两个关键的作用:信号槽和内省。       面向对象程序设计里面会讲到Smalltalk语言有一个元类系统。所谓元类,就是这里所说的Meta-Class。如果写过HTML,会

2012-12-09 11:42:14 609

原创 Qt 之路 (09)—深入信号和槽

信号槽机制是Qt编程的基础。通过信号槽,能够使Qt各组件在不知道对方的情形下能够相互通讯。这就将类之间的关系做了最大程度的解耦。槽函数和普通的C++成员函数没有很大的区别。它们也可以使virtual的;可以被重写;可以使public、protected或者private的;可以由其它的C++函数调用;参数可以是任何类型的。如果要说区别,那就是,槽函数可以和一个信号相连接,当这个信号发生时,它可以被

2012-12-09 11:28:39 613

原创 Qt 之路 (08)—对话框(下)

接着前一篇,下面是源代码部分:#include #include "finddialog.h"FindDialog::FindDialog(QWidget *parent): QDialog(parent){label = new QLabel(tr("Find &what:"));lineEdit = new QLineEdit;label->setBuddy(lineEdi

2012-12-09 11:22:43 498

原创 Qt 之路 (07)—对话框(上)

首先说明一点,在C++ GUI Programming with Qt4, 2nd中,这一章连同以后的若干章一起,完成了一个比较完整的程序——一个模仿Excel的电子表格。不过这个程序挺大的,而且书中也没有给出完整的源代码,只是分段分段的——我不喜欢这个样子,我想要看到我写出来的是什么东西,这是最主要的,而不是慢慢的过上几章的内容才能看到自己的作品。所以,我打算换一种方式,每章只给出简单的知识,但

2012-12-08 22:56:51 561

原创 Qt 之路 (06)—API文档的使用

今天来说一下有关Qt API文档的使用。因为Qt有一个商业版本,因此它的文档十分健全,而且编写良好。对于开发者来说,查看文档时开发必修课之一——没有人能够记住那么多API的使用!在Qt中查看文档是一件很简单的事情。如果你使用QtCreator,那么左侧的Help按钮就是文档查看入口。否则的话,你可以在Qt的安装目录下的bin里面的assistant.exe中看到Qt的文档。在早期版本中,Qt的

2012-12-08 22:49:51 693

原创 Qt 之路 (05)—组件布局

同Swing类似,Qt也提供了几种组件定位的技术。其中就包括绝对定位和布局定位。顾名思义,绝对定位就是使用最原始的定位方法,给出这个组件的坐标和长宽值。这样,Qt就知道该把组件放在哪里,以及怎么设置组件的大小了。但是这样做的一个问题是,如果用户改变了窗口大小,比如点击了最大化或者拖动窗口边缘,这时,你就要自己编写相应的函数来响应这些变化,以避免那些组件还只是静静地呆在一个角落。或者,更简单的方

2012-12-08 22:44:54 651

原创 Qt 之路 (04)—初探信号和槽

看过了简单的Hello, world! 之后,下面来看看Qt最引以为豪的信号槽机制!所谓信号槽,简单来说,就像是插销一样:一个插头和一个插座。怎么说呢?当某种事件发生之后,比如,点击了一下鼠标,或者按了某个按键,这时,这个组件就会发出一个信号。就像是广播一样,如果有了事件,它就漫天发声。这时,如果有一个槽,正好对应上这个信号,那么,这个槽的函数就会执行,也就是回调。就像广播发出了,如果你感

2012-12-08 22:35:19 619

原创 Qt 之路 (03)—你好,世界!(续)

下面来详细解析一下上篇文章HelloWorld程序,尽管很简单,但却可以对Qt程序的结构有一个清楚的认识。现在再把代码贴过来.  #include   #include   int main(int argc, char *argv[]){     QApplication app(argc, argv);     QLabel *label = new Q

2012-12-08 22:16:53 723

原创 Qt 之路 (02)—你好,世界!

任何编程技术的学习第一课基本上都会是Hello, world!,我也不想故意打破这个惯例——照理说,应该首先回顾一下Qt的历史,不过即使  不说这些也并无大碍。   或许有人总想知道,Qt这个单词是什么意思。其实,这并不是一个缩写词,仅仅是因为它的发明者,TrollTech公司的CEO,Haarard Nord和Trolltech公司的总裁Eirik Chambe-Eng在联合发明Qt的时

2012-12-08 16:57:01 894

原创 Qt 之路 (01)—前言

这段时间一直在忙碌项目,好久好久没更新博客了,眼看着项目也完成的差不多了,在这里抽个时间给大家更新一下嵌入式开发的相关信息吧.   开始学习嵌入式QT开发,极力推荐!废话少说,开始ing….       Qt是一个著名的C++库——或许并不能说这只是一个GUI库,因为Qt十分庞大,并不仅仅是GUI。使用Qt,在一定程序上你获得的是一个“一站式”的服务:不再需要研究STL(标准模版库),不再

2012-12-08 16:46:20 708

android-开发实例

android-开发实例

2012-12-09

Android核心技术和开发详解源码完整版.

Android核心技术和开发详解源码完整版

2012-12-09

Android API中文文档

Android API中文文档

2012-12-09

QT4.7.1安装详细说明

Linux下QT4.7.1安装详细说明 QT4.7.1安装详细说明

2012-12-09

Qt_4.7.0及Qt_Creator_2.0 安装图解

Qt_4.7.0及Qt_Creator_2.0_beta版安装全程图解

2012-12-09

关于Qt开发简介

Qt开发简介,对于刚开始接触嵌入式开发的盆友来说,首先了解什么是Qt,Qt的功能,从而对于踏入Qt开发之路奠基很好的基础.

2012-12-09

精通Qt编程

哎呦,本书实在说的很详细全面了,从HelloWorld基础到完整的嵌入式项目,本书是打好扎实基础的神器..建议用福昕阅读器打开文档.

2012-12-09

Linux下Qt编程入门

Linux下Qt编程的入门文档,覆盖了Qt编程的所有知识点,对于刚踏入嵌入式开发的盆友们来说,有需求的可以看一看.

2012-12-09

嵌入式开发数据库

嵌入式开发常用Sqlite数据库,本数据库虽只有几兆大小,但功能确是很强大的,拥有一般数据库该有的功能.

2012-12-09

Qt编译所需的动态链接库

一次性打包了Qt编译环境所需要的动态链接库,只需要把所需要的动态链接库添加到C:\WINDOWS\system32路径下,WIN+R后输入cmd启动命令窗体后,在命令行输入regsvr32+链接库名称,按回车安装完成!再次运行程序,即可!

2012-12-09

Qt—MinGW-gcc440_1

安装QT组合版的必备神器. 加压后放在C盘目录下即可. 安装时就可以找到.

2012-11-21

java企业面试题

这里包含了一些软件公司、企业招聘程序员必考的面试题。

2012-05-14

java网络聊天室

在jdk6.0版本上编写的java聊天室程序,可以实现登录,注册,在线好友查询等功能。

2012-05-14

java贪吃蛇(美化版)

这是一个经过不断美化后的街机小游戏-贪吃蛇游戏。画面更逼真.代码注释很详细。

2012-05-14

空空如也

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

TA关注的人

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