
QT研究/KDE
文章平均质量分 77
山庄来客
这个作者很懒,什么都没留下…
展开
-
Qt中使用C++的方式
先看一个普通的C++类的定义:#include using std::string;class MyClass{public:MyClass( const string& text );const string& text() const;void setText( const string& text );int getLengthOfTe原创 2011-06-29 21:33:00 · 8168 阅读 · 0 评论 -
Qt5下OpenGL程序的新写法
在Qt5中,引入了QOpenGL*系列类,以取代Qt4时代的QGL*系列类。下面是从Qt5例子中抠出的两种OpenGL程序模板,方便参考。第一种写法:#ifndef TRIANGLEWINDOW_H#define TRIANGLEWINDOW_H#include #include class QPainter;class QOpenGLContext;c原创 2013-07-04 19:51:38 · 25249 阅读 · 6 评论 -
CMake编译Widget UI Qt程序
自从CMake被引入到KDE项目的编译系统中后,CMake的使用者日益增多,Qt也不例外,除了使用QMAKE编译Qt程序外,也可以使用CMake来编译Qt程序,并且CMake在使用上更灵活,特别是大型程序。CMake对于Qt4和Qt5都支持,不过使用上有点差异,这里主要看下Qt5下使用CMake编译Qt程序。官方文档链接: http://qt-project.org/doc/qt-原创 2013-05-29 09:29:37 · 8038 阅读 · 0 评论 -
事件处理
事件是由系统或Qt本身产生的,以应对不断发生的情况。事件可以是鼠标事件、键盘事件或窗口显示等。在Qt中,各种Widget已经封装了对各种事件的响应代码,对外的形式是各种信号。当使用Widget时,我们只需关注信号就可以了,而当自己实现一个Widget时,则需要自己实现一些事件响应代码。在Qt中,一个事件对象继承自QEvent。Qt处理多达几百种事件,每种事件都用一个枚举类型来表示,如鼠标按原创 2011-12-08 22:24:26 · 2084 阅读 · 0 评论 -
Qt动画框架
状态机框架提供了创建和执行状态图的一些类.这些概念和表示都是基于Harel状态图中的一些概念和记法.它也是UML状态图表的基础.状态机执行的语义是基于状态图XML(SCXML). 状态图提供了一种图形化的方式来对一个系统建模,从而反映它怎么响应外部触发.这是通过定义系统可能进入的一些状态以及系统怎么从一个状态转换到另一个状态(不同状态之间转变)来实现的.事件驱动系统的一个关键的特征(例如Q翻译 2010-12-30 00:38:00 · 6538 阅读 · 13 评论 -
自定义布局管理器
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->要编写自定义布局管理器,需要从QLayout类派生,并定义如下一些方法和数据结构:存储布局管理器上每个项的数据结构,每个项是一个QLayoutItem。addItem(),定义怎样将每个项添加到布局管理器上。setGeometry(原创 2012-01-03 17:24:30 · 1126 阅读 · 0 评论 -
Qt多线程编程
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->在Qt应用程序启动后,实际上已经产生了一个线程,叫主线程。主线程通常也称为GUI线程,因为所有的组件和其他用户界面对象都由该线程处理。通常主线程由一个事件循环和在此线程中创建的一系列对象组成。通过继承QThread类,我们可以创建一个新的线程,拥有线程自己原创 2011-12-16 00:30:36 · 1180 阅读 · 0 评论 -
多线程中数据的并发访问与保护
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->在多线程编程中,不可避免地要对一些共享的数据进行访问。由于线程之间对共享数据的访问是独立的,任何一个线程都可对共享数据进行访问和修改,且它们之间是异步并发进行的,特别是当需要对共享数据进行修改时,就会产生数据不一致的问题,为此,需要一种保护机制,来限制线程之间原创 2011-12-16 00:34:54 · 7160 阅读 · 2 评论 -
QProcess
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->QProcess类用于启动另一个外部应用程序,并可与之进行通信。该类的运行方式是异步的。QProcess类在外部进程拥有数据或完成时发送一个信号以通知相关的对象。QProcess的使用模板如下:class XXX : public XXXX{原创 2011-12-16 00:27:36 · 4374 阅读 · 0 评论 -
QThreadPool类和QtConcurrent命名空间
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->一、QThreadPool类 QThreadPool管理一组线程。它负责管理和回收单个QThread对象以减少程序中线程创建的开销。每个Qt应用程序都有一个全局的QThreadPool对象,可通过方法globalInstance()获得。为了调用QT原创 2011-12-16 00:38:19 · 9581 阅读 · 0 评论 -
kde Plasmoid Applet开发
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->摘要该plasmoid将包含一个文本框和按钮。 <!--@page {margin:0.79in}p {margin-bottom:0.08in}-->代码.desktop文件每个plasmoid都需翻译 2011-12-22 14:08:36 · 1380 阅读 · 0 评论 -
Qt线程基础
原文地址:http://doc.qt.nokia.com/master-snapshot/thread-basics.html线程基础何谓线程?线程与并行处理任务息息相关,就像进程一样。那么,线程与进程有什么区别呢?当你在电子表格上进行数据结算的时候,在相同的桌面上可能有一个播放器正在播放你最喜欢的歌曲。这是一个两个进程并行工作的例子:一个进程运行电子表格程序;另一个进程运翻译 2011-12-10 13:50:21 · 8378 阅读 · 0 评论 -
XML文件处理
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->Qt的XML模块包含了两种处理xml的API,分别是SAX和DOM。SAX提供了一种低层的基于事件驱动的方式解析xml文件,而DOM提供了一种高层的接口用于解析xml文件。不同之处在于DOM受制于内存的大小,一次不能解析文件大小太大的xml文件,因为它将xml原创 2011-12-11 23:50:22 · 1881 阅读 · 0 评论 -
Qt输入输出
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->QIODevice类是对所有读和写一段字节块的一个抽象。Qt包含了下面的一些子类:QFile访问本地文件系统中的文件或嵌入的资源。QTemporaryFile创建或访问本地文件系统中的原创 2011-12-11 23:42:47 · 7428 阅读 · 0 评论 -
保存和恢复应用程序状态
<!--@page {margin:0.79in}p {margin-bottom:0.08in}a:link {}-->在实际应用中,常常需要应用程序能保存程序的状态以及用户的设置,如应用程序显示的大小、位置、背景颜色或用户设置参数等信息,以便下次运行程序时,能保持上次关闭的状态。Qt提供的QSettings类能很方便地实现保存程序设置的需求。当创原创 2011-12-08 22:03:33 · 5835 阅读 · 0 评论 -
信号与槽
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->信号与槽机制是Qt编程的基础。它使得应用程序开发人员可以将对象绑定到一起而对象之间不需要相互了解。槽几乎与普通的C++成员函数相同。它们可以是虚函数。它们可以被重载。它们可以是公有的,可以是保护类型的,也可以是私有类型的,它们可以像其他类成员函数一样调用。原创 2011-12-08 21:59:03 · 927 阅读 · 0 评论 -
动态对话框的创建
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->动态对话框是指在运行时由.ui文件创建的对话框。它不是用uic将.ui文件转化为c++代码,而是使用类QuiLoader在运行时将文件加载。原创 2011-08-28 16:52:20 · 812 阅读 · 0 评论 -
Qt全局宏和变量
1. Qt 全局宏定义Qt版本号: QT_VERSION : (major 检测版本号:QT_VERSION_CHECK(major, minor, patch)((major当使用命名空间时的一些宏定义:namespace QT_NAMESPACE {} //命名空间定义# define QT_PREPEND_NAMESPACE(name) ::QT_NAMESP原创 2011-06-29 21:29:00 · 6963 阅读 · 0 评论 -
Qt中的容器类
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->Qt提供了两种类型的容器类:序列容器和关联容器。例如QVector,QLinkedList和QList属于序列容器,而QMap和QHash属于关联容器。Qt提供了通用的算法,对这些容器类执行一些操作,如qSort()对一个序列容器进行排序,而qBinary原创 2011-12-11 23:33:16 · 2934 阅读 · 0 评论