随笔分类 -  Qt

1 2 下一页

C++ GUI with Qt4
QTabWidget 使用小记
摘要:[2010年07月30日文档]哈哈,这个暑假在家里学习Qt,有了一些理论知识后,就想动手搞个什么小东西,在Qt Demo中看到了一个简单的文本编辑器,我就研究它了,当然Qt带的这个例子功能十分简单,经过几天不断的摸索和实践我也搞了一个类似的,不过功能要强大,而且比Windows 默认带的那个记事本也要强,呵呵,后来就想继续扩充功能,时下十分流行的那个功能“一个窗口多个标签页显示”就如IE8那种,可以在一个窗口打开多个网页,在Qt中当然要用QTabWidget,但是据我所知这个控件并没有提供关闭按钮,这个很麻烦了,google一晚上,在国外某个论坛上看到了解决方案:在Qt 4.5 中 QTabW 阅读全文

posted @ 2012-05-30 20:30 hicjiajia 阅读(13341) 评论(2) 推荐(0) 编辑

找孩子…
摘要:[2010年08月03号文档]这篇文章标题比较特殊,呵呵,昨天在读别人源代码得时候发现了一个函数 :findChildren() ,当时就吸引我了,这是什么意思,翻了下文当终于明白是干什么用得了。在实际得Qt编程过程中,通常会有多个空间嵌套,就比如说:主窗体是QMainWdow,中央挂件是QTabWidget,而每一个QTabWidget子窗口中又有QTextEdit,这样得组合就是经典得多标签页文本编辑器样式,当然这个暑假我也在做这种编辑器。通常我们可以很容易得获得QMainWindow上QTabWidget控件得对象,但是想要直接操作QTabWidget中嵌套得QTextEdit就不能直接 阅读全文

posted @ 2012-05-30 19:54 hicjiajia 阅读(964) 评论(0) 推荐(0) 编辑

再谈Qt Focus事件
摘要:[2010年07月30日文档]在我的前一篇文章<focusInEvent()与focusOutEvent>中,我实现了QLineEdit获得焦点高亮显示与失去焦点恢复原样的操作,是通过重新继承该类,再重构该事件函数的方式。这篇文章紧跟那篇文章,这里要实现的功能也是一样的,而是通过另外不同的方式——事件过滤器(eventFilter)。Qt的事件模型中提供的事件过滤功能使得一个QObject对象可以监视另一个QObject对象中的事件,通过在一个QObject对象中安装事件过滤器可以在事件到达该对象前捕获事件,从而起到监视该对象事件的效果。实现类似功能的另一种方式是通过分别继承不同的 阅读全文

posted @ 2012-05-30 19:52 hicjiajia 阅读(10627) 评论(0) 推荐(0) 编辑

FocusInEvent()与FocusOutEvent()
摘要:[2010年07月27日文档]描述:一开始我要实现的目的就是,在一个窗体上有多个可编辑控件(比如QLineEdit、QTextEdit等),当哪个控件获得焦点,哪个控件的背景就高亮用来起提示作用,查了下文档应该用focusInEvent()和focusOutEvent(), 在实际过程中,我犯了十分严重的错误,最开始的时候我是这样做的:我重写了窗体QWidget的这两个函数,然后再在函数体中把QFocusEvent事件传递给窗体上的QLineEdit控件:void Widget::focusInEvent(QFocusEvent *event){ QLineEdit::focusIn... 阅读全文

posted @ 2012-05-30 19:43 hicjiajia 阅读(13726) 评论(1) 推荐(1) 编辑

多格式过滤器
摘要:用迅雷下载文件时间久了TDDOWNLOAD 文件下一大堆文件,各式各样,想把他们归类整理一番,若在Linux和Window下可以用命令直接搞定,不过命令对普通用户不友好,本着实践态度,外加好友的需要,特制作一下。文件复制部分不必说,就是一个Qt文件复制API,如果需要就递归一下 ;关键在过滤器这里,就是要实现一次复制多个指定格式的文件,用Qt自带的过滤一次只能抓取一种格式,一次多种格式好像没法了 ;我的思路是定义一个QString对象,接受例如 :"jpg,png,txt" 类型字符串的输入,然后用 split() 以逗号为分割符分割成QStringList,然后在复制函数 阅读全文

posted @ 2012-04-13 13:28 hicjiajia 阅读(1188) 评论(0) 推荐(0) 编辑

Qt源码分析之QPointer
摘要:原文:http://blog.csdn.net/oowgsoo/article/details/1529424QPointer是一个指针封装类,其作用类似于智能指针,但是它最大的特点应该是在指针的控制上,它希望一个Qt的指针(当然是从QObject派生的)可以同时被多个类拥有,这在界面编程中当然是很常见的事情了,但是当这个指针被删除时,我们不希望再找到那两个界面类然后通知它们,相反我们希望这两个界面类可以直接判断QPointer中的isNull方法很自然的知道原始指针已经不存在了1.试验代码:#include <QApplication>#include <QPushButt 阅读全文

posted @ 2011-08-27 14:55 hicjiajia 阅读(1603) 评论(0) 推荐(1) 编辑

Qt源码分析之信号和槽机制
摘要:原文:http://blog.csdn.net/oowgsoo/article/details/1529411Qt的信号和槽机制是Qt的一大特点,实际上这是和MFC中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义的说法,简单点说就是如何在一个类的一个函数中触发另一个类的另一个函数调用,而且还要把相关的参数传递过去.好像这和回调函数也有点关系,但是消息机制可比回调函数有用多了,也复杂多了MFC中的消息机制没有采用C++中的虚函数机制,原因是消息太多,虚函数开销太大.在Qt中也没有采用C++中的虚函数机制,原因与此相同.其实这里还有更深层 阅读全文

posted @ 2011-08-27 14:48 hicjiajia 阅读(3937) 评论(0) 推荐(3) 编辑

Qt源码分析之QObject
摘要:原文:http://blog.csdn.net/oowgsoo/article/details/1529284我感觉oowgsoo兄弟写的分析相当透彻,赞!1.试验代码:#include <QApplication>#include <QtCore>#include <QtGui>int main(int argc, char *argv[]){ QApplication app(argc, argv); int size = sizeof(QObject); QPushButton* quit = new QPushButton("Quit&qu 阅读全文

posted @ 2011-08-27 14:34 hicjiajia 阅读(2540) 评论(0) 推荐(2) 编辑

将窗体嵌入桌面
摘要:在试用某些App时,发现有些Ap的窗口可以嵌入桌面,这样Win+D键的时候就可以看到,很方便。在网上搜索了一下,原理就是将窗口的父窗口设置成桌面。这个父窗口在Xp下通过FindWindow("Program manager","progman")找到,但是在win7下这个方法找到的父窗口就不好用了。用spy++看了之后,写了下面一段代码findDesktopIconWnd(),在xp和win7下都可以找到这个父窗口。子窗口再调用SetParent(child,parent)就可以在桌面上看到了。在Qt中实践下:理论:0、#include &lt; 阅读全文

posted @ 2011-02-13 21:22 hicjiajia 阅读(2508) 评论(2) 推荐(0) 编辑

Qt 多线程
摘要:Qt线程类Qt 包含下面一些线程相关的类:QThread提供了开始一个新线程的方法QThreadStorage提供逐线程数据存储QMutex 提供相互排斥的锁,或互斥量QMutexLocker是一个便利类,它可以自动对QMutex加锁与解锁QReadWriterLock提供了一个可以同时读操作的锁QReadLocker与QWriteLocker是便利类,它自动对QReadWriteLock加锁与解锁QSemaphore提供了一个整型信号量,是互斥量的泛化QWaitCondition提供了一种方法,使得线程可以在被另外线程唤醒之前一直休眠。Qt线程的创建 Qt线程中有一个公共的抽象类,所有的线程 阅读全文

posted @ 2011-02-03 15:16 hicjiajia 阅读(12202) 评论(0) 推荐(3) 编辑

QT 多线程程序设计
摘要:QT通过三种形式提供了对线程的支持。它们分别是,一、平台无关的线程类,二、线程安全的事件投递,三、跨线程的信号-槽连接。这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势。多线程编程也是一个有用的模式,它用于解决执行较长时间的操作而不至于用户界面失去响应。在Qt的早期版本中,在构建库时有不选择线程支持的选项,从4.0开始,线程总是有效的。线程类Qt包含下面一些线程相关的类:QThread提供了开始一个新线程的方法QThreadStorage提供逐线程数据存储QMutex提供相互排斥的锁,或互斥量QMutexLocker是一个便利类,它可以自动对QMutex加锁与解锁QRea 阅读全文

posted @ 2011-02-03 13:17 hicjiajia 阅读(72065) 评论(3) 推荐(10) 编辑

QAxBase Class Reference
摘要:QAxBase Class Reference[QAxContainermodule]QAxBase是一个抽象类,提供了初始化及访问COM对象的API.More...被QAxObject和QAxWidget继承.List of all members, including inherited membersPublic TypestypedefPropertyBagPropertiescontrol: QStringPublic FunctionsQAxBase( IUnknown *iface= 0 )virtual~QAxBase()QVariantasVariant() constvir 阅读全文

posted @ 2011-01-31 13:26 hicjiajia 阅读(3768) 评论(0) 推荐(0) 编辑

QT中使用QProcess启用外部程序
摘要:因为目前的程序需要提供一个文件对比的功能,而目前已经有专门的文本对比软件,所以我打算直接调用外部的文本对比程序。通过查阅QT的帮助文档,发现了QProcess这个类可以提供这种需求。我找到的启动外部程序的方法有以下两种:1、start()void QProcess::start ( constQString&program, constQStringList&arguments,OpenModemode= ReadWrite )Starts the programprogramin a new process, passing the command line arguments inargu 阅读全文

posted @ 2011-01-26 12:08 hicjiajia 阅读(17314) 评论(0) 推荐(0) 编辑

hijack
该文被密码保护。

posted @ 2011-01-22 20:36 hicjiajia 阅读(2) 评论(0) 推荐(0) 编辑

Canonical 要将 Qt 应用带入 Ubuntu
摘要:1月18日,Ubuntu的创始人 Mark Shuttleworth 在自己的博客中发表通告说,可能会在 Natty 之后的 Ubuntu 11.10 中内置 Qt 库及运行环境,同时会对一些有价值的 Qt 程序进行评估,并考虑会把它们内置于安装光盘及默认安装到 Ubuntu 中。Mark 表示:Qt 一直是开源产品中的佼佼者,而且有着一大批用 Qt 技术开发的一流软件,这是一个非常棒的工具包。另外,目前Ubuntu开发团队遭遇到的最大问题是 ,Qt 与 GTK 程序之间的“系统设定和首选项”有着一定的摩擦,而为了保证在现有包含大量 GTK 程序的 Ubuntu 架构上能与 Qt 应用程序一起 阅读全文

posted @ 2011-01-20 12:57 hicjiajia 阅读(453) 评论(0) 推荐(0) 编辑

Qt状态机实例
摘要:Qt4.6引入了动画框架,摆脱了以往控件只能安静的呆在布局里的时代,利用Qt提供的动画框架,我们可以让控件跳起舞来,呵呵,很有趣啊… 在Qt4.7中又引入了Qt quick技术,其中的QML语言也是专门来定制GUI动画效果的,这是一种新的GUI动画机制,我刚也接触了些,语法类似CSS,实现预定义的动画很方便,所见即所得,路还得一步步走,先学习一下传统的Qt动画方式——状态机这里先直接给出例子(见图):下面是源码:[代码] 阅读全文

posted @ 2011-01-19 17:45 hicjiajia 阅读(6511) 评论(0) 推荐(0) 编辑

QML 学习(三)
摘要:经过前面两个教程,文字也能显示,也能处理鼠标事件了,来点动画吧。这个教程实现了当鼠标按住的时候,Hello,World从顶部到底部的一个旋转过程,并带有颜色渐变的效果。完整的源代码main.qml[代码]除了这个main.qml之外,还有一个Cell.qml也是需要的,和教程(2)中的完全一样。下面来看一看比起教程(2)的代码增加出来的内容。[代码]states内嵌于Text之中,可以为Text元素添加多个状态,现在的这个例子只增加了一个状态。该状态的名为为”down”,然后由“when”指 定了什么时候触发这个状态。PropertyChanges则指定了哪个元素的哪些属性会发生什么样的变化。 阅读全文

posted @ 2010-12-05 13:09 hicjiajia 阅读(3613) 评论(0) 推荐(1) 编辑

QML 学习(二)
摘要:在上一篇文章里我们使用了最基础的QML类型实现了文字Hello,World的显示。这篇文章中将会增加颜色选项面板,用户可以给Hello,World设置不同的颜色,如下图显示:QML组件从图中可以看到选项面板由6个颜色小块组成,它们唯一的区别就是颜色不一样。那么我们就可以用组件(Component)来实现一个颜色块,然后在需要的时候使用这个组件就可以了。组件其实和其它编程语言中的宏,函数,类,结构体等功能差不多,就是代码复用。作为程序员,我知道你懂的。组件由一个单独的QML文件名组成,文件名总是以大写字母开头,要使用该组件的时候直接使用该文件名就可以了。关于如何定义自己的组件,请访问Defini 阅读全文

posted @ 2010-12-05 13:02 hicjiajia 阅读(18927) 评论(1) 推荐(1) 编辑

QML 学习(一)
摘要:前言 :Qt Declarative UI 传得沸沸扬扬,却很少有中文资料介绍这是一个什么样的技术,以及如何使用它。偶尔能搜到几篇也是掐头去尾的,让人摸不着头脑。CuteQt网友英狐奉献的三篇文章很有参考价值,把我带入了门。我准备翻译的这个入门教程来自于Qt官方文档,更多的是语法性的介绍。说是翻译,其实是我在原文基础上的一个阅读理解吧。QML是什么?QML是一种描诉性的脚本语言,文件格式以.qml结尾。语法格式非常像CSS(参考后文具体例子),但又支持javacript形式的编程控制。我个人认为它结合了QtDesigner UI和QtScript的有点。QtDesigner可以设计出.ui界面 阅读全文

posted @ 2010-12-05 12:42 hicjiajia 阅读(7808) 评论(2) 推荐(0) 编辑

Qt 文件搜索
摘要:代码无意间在网上找到,下载回来后改了几个格式,编译后经测试可以正常使用,这个个文件搜索的很好的例子,有两种搜索方式:一种是按文件名作为关键字进行搜索,一种是以文档中所包含的关键字进行搜索,贴两张图先:上图为两个文本文档(都位于C盘根目录下),其中都包含有"2010-12-05"这样的关键字,一会就用这个关键字搜索看看行不行...注意:这个实例程序无法进行递归的查找,只能搜索指定目录这一层的文件,另外它只能匹配文本文档。[代码][代码][代码] 阅读全文

posted @ 2010-12-05 12:03 hicjiajia 阅读(4262) 评论(0) 推荐(0) 编辑

1 2 下一页