- 博客(18)
- 资源 (1)
- 收藏
- 关注
翻译 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 1337
原创 专题 16 基于UDP的通信程序设计
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->UDP数据的收发UDP协议使用函数sendto发送函数,使用函数recvfrom接收数据。数据发送函数sendto函数原型:intsendto(int s , const void *msg, int len,
2011-12-18 22:24:12 1052
原创 专题 15 TCP套接字编程
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->概述存在三种套接字:流式套接字(SOCK_STREAM)、数据报套接字(SOCK_DGRAM)和原始套接字(SOCK_RAW)。TCP套接字工作流程:首先,服务器端启动进程,调用Socket创建一个基于TCP协议
2011-12-18 22:21:55 3078
原创 专题 14 IPC之共享内存
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->1.概述共享内存是在多个进程之间共享内存区域的一种进程间的通信方式,它是在多进程之间对内存段进行映射的方式实现内存共享的。这是IPC最快捷的方式,共享内存方式的通信过程没有中间过程,共享内存直接将某段进行映射,多个进程间的共享内存是同块内存物理空间
2011-12-18 21:16:00 648
原创 专题 13 IPC之信号量
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->1.概述信号量是一种计数器,用来控制对多个进程共享的资源所进行的访问。它们常被用做一个锁机制。2.相关数据结构与函数信号量数据结构:structsemun{intval;//当执行SETVAL命令时,用于指定要把信号量设
2011-12-18 21:14:39 638
原创 专题 12 IPC之消息队列
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->1.概述消息队列是内核地址空间中的内部链表,通过Linux内核在各个进程之间传递内容。消息顺序地发送到消息队列中,并以几种不同的方式从队列中获取,每个消息队列可以用IPC标识符唯一的进行标识。内核中的消息队列是通过IPC的标识符来区别的,不同的消息队列之间
2011-12-18 21:07:11 890
原创 QThreadPool类和QtConcurrent命名空间
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->一、QThreadPool类 QThreadPool管理一组线程。它负责管理和回收单个QThread对象以减少程序中线程创建的开销。每个Qt应用程序都有一个全局的QThreadPool对象,可通过方法globalInstance()获得。为了调用QT
2011-12-16 00:38:19 9369
原创 多线程中数据的并发访问与保护
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->在多线程编程中,不可避免地要对一些共享的数据进行访问。由于线程之间对共享数据的访问是独立的,任何一个线程都可对共享数据进行访问和修改,且它们之间是异步并发进行的,特别是当需要对共享数据进行修改时,就会产生数据不一致的问题,为此,需要一种保护机制,来限制线程之间
2011-12-16 00:34:54 7122 2
原创 Qt多线程编程
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->在Qt应用程序启动后,实际上已经产生了一个线程,叫主线程。主线程通常也称为GUI线程,因为所有的组件和其他用户界面对象都由该线程处理。通常主线程由一个事件循环和在此线程中创建的一系列对象组成。通过继承QThread类,我们可以创建一个新的线程,拥有线程自己
2011-12-16 00:30:36 1165
原创 QProcess
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->QProcess类用于启动另一个外部应用程序,并可与之进行通信。该类的运行方式是异步的。QProcess类在外部进程拥有数据或完成时发送一个信号以通知相关的对象。QProcess的使用模板如下:class XXX : public XXXX{
2011-12-16 00:27:36 4133
原创 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 1849
原创 Qt输入输出
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->QIODevice类是对所有读和写一段字节块的一个抽象。Qt包含了下面的一些子类:QFile访问本地文件系统中的文件或嵌入的资源。QTemporaryFile创建或访问本地文件系统中的
2011-12-11 23:42:47 7304
原创 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 2881
原创 编程之美读书笔记1
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->第一章 软件架构是什么软件架构应该...asoftware architect that the system should be friendly and responsiveto the user, maintainable, free o
2011-12-11 23:23:10 772
翻译 Qt线程基础
原文地址:http://doc.qt.nokia.com/master-snapshot/thread-basics.html线程基础何谓线程?线程与并行处理任务息息相关,就像进程一样。那么,线程与进程有什么区别呢?当你在电子表格上进行数据结算的时候,在相同的桌面上可能有一个播放器正在播放你最喜欢的歌曲。这是一个两个进程并行工作的例子:一个进程运行电子表格程序;另一个进程运
2011-12-10 13:50:21 8330
原创 事件处理
事件是由系统或Qt本身产生的,以应对不断发生的情况。事件可以是鼠标事件、键盘事件或窗口显示等。在Qt中,各种Widget已经封装了对各种事件的响应代码,对外的形式是各种信号。当使用Widget时,我们只需关注信号就可以了,而当自己实现一个Widget时,则需要自己实现一些事件响应代码。在Qt中,一个事件对象继承自QEvent。Qt处理多达几百种事件,每种事件都用一个枚举类型来表示,如鼠标按
2011-12-08 22:24:26 2038
原创 保存和恢复应用程序状态
<!--@page {margin:0.79in}p {margin-bottom:0.08in}a:link {}-->在实际应用中,常常需要应用程序能保存程序的状态以及用户的设置,如应用程序显示的大小、位置、背景颜色或用户设置参数等信息,以便下次运行程序时,能保持上次关闭的状态。Qt提供的QSettings类能很方便地实现保存程序设置的需求。当创
2011-12-08 22:03:33 5757
原创 信号与槽
<!--@page {margin:0.79in}p {margin-bottom:0.08in}-->信号与槽机制是Qt编程的基础。它使得应用程序开发人员可以将对象绑定到一起而对象之间不需要相互了解。槽几乎与普通的C++成员函数相同。它们可以是虚函数。它们可以被重载。它们可以是公有的,可以是保护类型的,也可以是私有类型的,它们可以像其他类成员函数一样调用。
2011-12-08 21:59:03 905
Beginning Visual C++ 2008(含源码)
2010-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人