03 2014 档案

摘要:XML,全称为“可扩展标记语言”(extensible markup language).是一种非常方便的数据交换与数据存储的工具。我们在取得一个XML格式的文件后,需要作句法分析去提取发布方提供的信息。而Qt为XML提供了很好的支持,包括DOM方式的实现和SAX方式的实现。二者主要区别是:DOM (Document Object Model)实现方式操作非常简单,但不适合处理过大文件;而SAX实现方式是能处理很大的XML文件,但是需要开发者写一些复杂的代码。Qt提供了对应于这两种用于 读取、操作和编写XML的实现类,分别是QDomDocument类和QXmlStreamReader类,这里我 阅读全文
posted @ 2014-03-31 14:25 星语海蓝 阅读(3626) 评论(0) 推荐(0) 编辑
摘要:这个例子是在根据网上博客《Qt数据库(XML)》改写的一个操作XML的实现。借鉴了很多里面的代码,大家可以结合上面的博客对照,相信你肯定会对XML的操作熟练起来。我建立的是Qwidget项目,没有添加ui文件,输出内容都放在应用程序输出中(qDebug)。XMLtest.pro文件代码:[cpp]view plaincopy#-------------------------------------------------##ProjectcreatedbyQtCreator2012-08-15T15:56:54##--------------------------------------- 阅读全文
posted @ 2014-03-27 16:20 星语海蓝 阅读(21366) 评论(1) 推荐(0) 编辑
摘要:发现用 Qt 解析 xml 文件非常方便,下面是一个简单的解析 xml 文件的例子:[cpp]view plaincopy#include#include#include#include#includevoidparse(constchar*filename){if(NULL==filename)return;QFilefile(filename);if(!file.open(QFile::ReadOnly|QFile::Text)){printf("openfile'%s'failed,error:%s!\n",filename,file.errorStr 阅读全文
posted @ 2014-03-27 16:19 星语海蓝 阅读(4212) 评论(0) 推荐(0) 编辑
摘要:介绍在Qt中提供了QtXml模块实现了对XML数据的处理,我们在Qt帮助中输入关键字QtXml Module,可以看到该模块的类表。在这里我们可以看到所有相关的类,它们主要是服务于两种操作XML文档的方法:DOM和SAX。 Dom(Document Object Model,即文档对象模型)把XML文档转换成应用程序可以遍历的树形结构,这样便可以随机访问其中的节点。它的缺点是需要将整个XML文档读入内存, 消耗内存较多。除了上面的两种方法外,Qt还提供了简单的QXmlStreamReader和QXmlStreamWriter对XML文档进行读写,下 面我们先介绍使用DOM的方式来操作XML文档 阅读全文
posted @ 2014-03-27 12:42 星语海蓝 阅读(6355) 评论(0) 推荐(0) 编辑
摘要:因为需要读取配置文件,我的配置文件采用xml;因此编写了使用qt读取xml文件内容的代码,xml文件如下:为了读取xml,我编写ReadConfig类代码如下:ReadConfig.h文件内容如下/********************************************************************************文件名:ReadConfig.h**文件摘要:读取系统配置文件**作者:程晓鹏**文件创建时间:2012/02/23 09:59:36****************************************************** 阅读全文
posted @ 2014-03-27 12:38 星语海蓝 阅读(6088) 评论(0) 推荐(0) 编辑
摘要:本文主要内容:在任务一中,用 四 种方式实现:点击界面按钮,开线程运行一段程序,结果显示在一个Label上。1. 用不正确的方式得到看似正确的结果2. 用Qt Manual 和 例子中使用的方法3. 用一种好用但被Qt开发人员批判的方法4. 用一种被开发人员强烈推荐,但Qt Manual和例子中只字未提的方法为了简单起见,本文只讲如何做及其结果是什么,而不讲其原因是什么(估计大家对原因也不会感兴趣,详见:QThread 使用探讨 和QThread使用方法)。本文只考虑两个线程(即主线程和一个次线程)的情况。QWidgetQWidget及其派生类均 不能在次线程中使用或创建Manual 中的原话 阅读全文
posted @ 2014-03-26 16:23 星语海蓝 阅读(1197) 评论(0) 推荐(0) 编辑
摘要:Qt 线程类Qt对线程的支持已经有很多年了(发布于2000年九月22日的Qt2.2引入了QThread类),Qt 4.0版本的release则对其所有所支持平台默认地是对多线程支持的。(当然你也可以关掉对线程的支持,参见这里)。现在Qt提供了不少类用于处理线程,让你我们首先预览一下:QThreadQThread是Qt中一个对线程支持的核心的底层类。 每个线程对象代表了一个运行的线程。由于Qt的跨平台特性,QThread成功隐藏了所有在不同操作系统里使用线程的平台相关性代码。为了运用QThread从而让代码在一个线程里运行,我们可以创建一个QThread的子类,并重载QThread::run() 阅读全文
posted @ 2014-03-26 16:21 星语海蓝 阅读(5089) 评论(1) 推荐(0) 编辑
摘要:初次读到这篇文章,译者感觉如沐春风,深刻体会到原文作者是花了很大功夫来写这篇文章的,文章深入浅出,相信仔细读完原文或下面译文的读者一定会有收获。由于原文很长,原文作者的行文思路是从事件循环逐渐延伸到线程使用的讨论,译者因时间受限,暂发表有关事件循环的译文。另一半线程实用的译文将近期公布。文中有翻译不当的地方,还请见谅。介绍线程是qt channel里最流行的讨论话题之一。许多人加入了讨论并询问如何解决他们在运行跨线程编程时所遇到的问题。快速检阅一下他们的代码,在发现的问题当中,十之八九遇到得最大问题是他们在某个地方使用了线程,而随后又坠入了并行编程的陷阱。Qt中创建、运行线程的“易用”性、缺乏 阅读全文
posted @ 2014-03-26 16:19 星语海蓝 阅读(1619) 评论(1) 推荐(1) 编辑
摘要:(前半部分没有试过,因为我的有mysql驱动,实在抱歉) 1.预防万一,先安装一下mysql-devel(一定要装!)。 不安装的话后面编译会出现找不到-lmysqlclient的问题。 2. 开始编译: cd $QTDIR/src/plugins/sqldrivers/mysql//进入... 阅读全文
posted @ 2014-03-25 16:21 星语海蓝 阅读(3190) 评论(0) 推荐(0) 编辑
摘要:下载 qt-everywhere-opensource-src-4.8.4.tar.gz================准备工作====================yum install kernel-headers-$(uname -r) yum installkernel-devel-$(uname -r)yum install gcc gcc-c++ gdb makeyum install libX11-devel libXext-devel libXtst-devel================开始安装====================tar -xzvf qt-every 阅读全文
posted @ 2014-03-25 12:49 星语海蓝 阅读(1600) 评论(0) 推荐(0) 编辑
摘要:1.安装步骤yum install mysqlyum install mysql-serveryum install mysql-develchgrp -R mysql /var/lib/mysqlchmod -R 770 /var/lib/mysqlservice mysqld startmysql -u rootmysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');2常见问题(1)如果yum install 出现 Transaction Check Error:错 阅读全文
posted @ 2014-03-25 11:29 星语海蓝 阅读(1790) 评论(1) 推荐(0) 编辑
摘要:继承 QWidget setStyleSheet无效,解决方法。发现 继承自QWidget的自定义类 ,使用setStyleSheet无效,如果删除头文件中的 Q_OBJECT,setStyleSheet生效,但不用OBJECT 就无法所使用signal and slot,最后找到解决办法,继承自QWidget的自定义类中,重载 paintEvent方法,并加入如下代码:QStyleOption opt;opt.init(this);QPainter p(this);style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, t 阅读全文
posted @ 2014-03-21 15:45 星语海蓝 阅读(7043) 评论(1) 推荐(0) 编辑
摘要:qt中关于QWidget的背景颜色和背景图片的设置首先设置autoFillBackground属性为真然后定义一个QPalette对象设置QPalette对象的背景属性(颜色或图片)最后设置QWidget对象的Palette实例:QWidget *widget = new QWidget;widget->setAutoFillBackground(true);QPalette palette;palette.setColor(QPalette::Background, QColor(192,253,123));//palette.setBrush(QPalette::Background 阅读全文
posted @ 2014-03-21 15:11 星语海蓝 阅读(648) 评论(0) 推荐(0) 编辑
摘要:1、QLineEdit显示内容的格式函数:QLineEdit *lineEditPassword = new QLineEdit;lineEditPassword -> setEchoMode(QLineEdit::Password);注:QLineEdit::Normal0 Display characters as they are entered. This is the default.QLineEdit::NoEcho1Do not display anything. This may be appropriate for passwords where even the .. 阅读全文
posted @ 2014-03-15 16:48 星语海蓝 阅读(1899) 评论(0) 推荐(0) 编辑
摘要:串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。串口通讯指的是计算机依次以位(bit)为单位来传送数据,串行通讯使用的范围很广,在嵌入式系统开发过程中串口通讯也经常用到通讯方式之一。Linux对所有设备的访问是通过设备文件来进行的,串口也是这样,为了访问串口,只需打开其设备文件即可操作串口设备。在linux系统下面,每一个串口设备都有设备文件与其关联,设备文件位于系统的/dev目录下面。如 阅读全文
posted @ 2014-03-06 13:25 星语海蓝 阅读(11444) 评论(1) 推荐(1) 编辑
摘要:QT 多线程程序设计QT通过三种形式提供了对线程的支持。它们分别是,一、平台无关的线程类,二、线程安全的事件投递,三、跨线程的信号-槽连接。这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势。多线程编程也是一个有用的模式,它用于解决执行较长时间的操作而不至于用户界面失去响应。在Qt的早期版本中,在构建库时有不选择线程支持的选项,从4.0开始,线程总是有效的。线程类Qt包含下面一些线程相关的类:QThread提供了开始一个新线程的方法QThreadStorage提供逐线程数据存储QMutex提供相互排斥的锁,或互斥量QMutexLocker是一个便利类,它可以自动对QMute 阅读全文
posted @ 2014-03-03 10:23 星语海蓝 阅读(477) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示