QT学习
AAA20090987
一个喜欢编程,喜欢C 的人
展开
-
Qt源码分析之信号和槽机制
Qt的信号和槽机制是Qt的一大特点,实际上这是和MFC中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义的说法,简单点说就是如何在一个类的一个函数中触发另一个类的另一个函数调用,而且还要把相关的参数传递过去.好像这和回调函数也有点关系,但是消息机制可比回调函数有用多了,也复杂多了MFC中的消息机制没有采用C++中的虚函数机制转载 2012-02-01 14:29:15 · 1932 阅读 · 0 评论 -
Qt学习之XML读写操作小结
在“QQ便签”项目组中我负责有关后台XML操作的实现部分,现在对在项目中用到的XML的相关操作进行简单的小结。我们知道对XML的操作有两种方法,即DOM方式和SAX方式。二者主要区别是:DOM实现方式操作非常简单,但不适合处理过大文件;而SAX实现方式是能处理很大的XML文件,但是需要开发者写一些复杂的代码。Qt提供了对应于这两种用于读取、操作和编写XML的实现类,分别是QDomDocumen转载 2012-02-14 17:57:59 · 1514 阅读 · 0 评论 -
QT:用QSet储存自定义结构体的问题
前几天要用QSet作为储存一个自定义的结构体(就像下面这个程序一样),结果死活不成功。。。后来还跑到论坛上问人了,丢脸丢大了。。。事先说明:以下这个例子是错误的#include struct node{ int cx, cy; bool operator < (const node &b) const { return cx原创 2012-03-22 21:31:13 · 18611 阅读 · 2 评论 -
Qt中如何 编写插件 加载插件 卸载插件
Qt中如何 编写插件 加载插件 卸载插件是本文要介绍的内容。Qt提供了一个类QPluginLoader来加载静态库和动态库,在Qt中,Qt把动态库和静态库都看成是一个插件,使用QPluginLoader来加载和卸载这些库。由于在开发项目的过程中,要开发一套插件系统,就使用了Qt的这套类库。一 编写插件编写一个Qt的插件需要以下步骤1.声明一个插件类,2.定义一个类,转载 2012-05-12 13:38:49 · 1529 阅读 · 0 评论 -
QLabel中html标签的使用
abel中显示的字符串是支持HTML标签的。如果应用好的话会达到很多方便快捷的效果。举几个例子如下:(1) 作为标题:用一个QLabel对象,使其字体加大、加粗、居中,使用如下三个标签即可。new QLabel("标题", this, "title")(2) 加下划线:使用即可实现。(3) 给局部加样式还可以对text的部分内容添加标签,以使个别内容使用不同字体、样转载 2012-05-15 11:53:52 · 3722 阅读 · 0 评论 -
QT:高手们的博客
QT的入门资料比较少(与MFC,JAVA,C#等相比),我整理了一些QT高手们的博客,再配合QT的自带文档与《C++ GUI Programming with QT4》,帮助大家更好地学习QT。希望QT的未来更美好,呵呵。QT官方文档http://qt-project.org/doc/qt-4.8/assistant-manual.htmlQT4.6Qt4.6源原创 2012-01-10 11:33:33 · 3603 阅读 · 4 评论 -
Qt读写注册表和ini文件
需要#include 只举几个简单的例子:1、用QSettings写注册表QSettings *reg = new QSettings("HKEY_CURRENT_USER\\Software\\yinhaifan", QSettings::NativeFormat); reg->setValue("reg转载 2012-02-06 15:42:26 · 1389 阅读 · 0 评论 -
QThread 使用探讨
QThread 似乎是很难的一个东西,特别是信号和槽,有非常多的人(尽管使用者本人往往不知道)在用不恰当(甚至错误)的方式在使用 QThread,随便用google一搜,就能搜出大量结果出来。无怪乎Qt的开发人员 Bradley T. Hughes 声嘶力竭地喊you are-doing-it-wrong和众多用户一样,初次看到这个时,感到 Bradley T. Hughes有 些莫名奇妙转载 2012-06-14 17:50:35 · 1956 阅读 · 0 评论 -
QT:我自己封装的一个简易的二维表类SimpleTable
在QT中,QTableWidget处理二维表格的功能很强大(QTableView更强大),但有时我们只想让它显示少量数据(文字和图片),这时,使用QTableWidget就有点不方便了(个人感觉)。所以我对QTableWidget再做了一次封装(SimpleTable类),让它在处理小型表格时更方便。代码很简单,要解释的就写在注释里面了,欢迎大家使用。如果大家发现这个类的BUG的话,欢原创 2012-06-18 21:55:10 · 2967 阅读 · 1 评论 -
Qt读写文件的简单封装
C#中,有下列函数可以简单地读写文件:读: temp = File.ReadAllText("abc.txt",Encoding.Default); 写: File.WriteAllText("abc.txt", temp, Encoding.Default);追加: File.AppendAllText("abc.txt", temp, Encoding.Default);原创 2012-07-30 12:09:59 · 2094 阅读 · 1 评论 -
Linux下如何发布Qt程序
在X11平台下qt程序,首先准备好程序中需要使用的资源,库和插件... 比如你的可运行程序取名叫作panel,那把你的panel,那些libQt*.so.4和libQt*.so.4.6.0(链接和共享库都要)放在同一目录下(也可以不同,只要小小修改下shell文件).plugins就不多说了。 在程序的同目录下,新建一個空文档,取名panel.sh (文件名与程序名同名,扩展名转载 2012-02-28 21:54:33 · 3546 阅读 · 4 评论 -
自己动手写聊天软件
这个项目是我上大学的时候写的(虽然我现在还没毕业),以专业的眼光看来,这个聊天软件的架构是比较差的。但在一年前,这的确是我的最高水平了,呵呵。 真佩服当时的自己,水平差得不用说,但却可以花大量的时间去完成一个几乎是不可能完成的项目,结果花了几个月,终于搞出一个成果了,至少可以正常运行了,后来我去找实习的时候,这个项目也帮我得到了不少的面试机会(当然都是小公司的面试机会)。呵呵。好了,原创 2011-11-21 23:19:10 · 18511 阅读 · 75 评论 -
QT:QString、QByteArray和char *的转换
第一种,数据流的方式,这里只说从QByteArray转向QString。QByteArray encodedString = "xxx";QTextCodec *codec = QTextCodec::codecForName("KOI8-R");QString string = codec->toUnicode(encodedString);第二种,常用的,网上看转载 2011-12-29 10:33:12 · 3980 阅读 · 0 评论 -
Qt中文乱码问题解决办法
WOWCode的主体部分基本已经完成了,对于我自己来说,其实已经足以应付我的需要了,不过如果发布的话,实在还是拿不出手,因为很多地方还需要完善,一些对我自己来说多余的功能也没有完成,今天尝试将程序移植到了另一台机子上,却出现了中文乱码问题,记录之。也许你在用这个方法实现中文化,但它确实不够严谨Laguage» C++ Title» 出现频率最高的办法#inclu转载 2011-10-22 09:35:56 · 1341 阅读 · 2 评论 -
可以供MFC调用的,QT实现的DLL(qtwinmigrate实现)
MFC和QT的消息循环机制不同,所以,要让QT写的DLL可以供MFC调用,要做一点特殊的处理#include #include #include #include #include #include #include "widget.h"BOOL WI原创 2011-09-02 17:30:08 · 13723 阅读 · 9 评论 -
Linux/Ubuntu下 静态编译Qt程序
一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的。会提示缺少……库文件之类的错误。这就是动态编译的结果。但是如果我们想编译一个程序,这个程序在发给别人后,他们可以直接打开,而不需要特别地去先安装Qt库,那就需转载 2011-09-05 10:01:38 · 2771 阅读 · 0 评论 -
VA自动补全QT
发现用了一下,VA不能把QT的东西进行代码自动补全。于是要动下小手脚。 1.在Windows系统环境变量下增加 QTDIR = 你QT的安装目录.2启动VS->工具->选项->项目和解决方案->VC++目录: 可执行文件下增加:$(QTDIR)\转载 2011-08-08 17:20:36 · 3068 阅读 · 0 评论 -
QT的内存管理
参考以下这几篇文章:http://blog.csdn.net/dbzhang800/article/details/6300789http://blog.csdn.net/dbzhang800/article/details/6300025原创 2011-09-06 12:37:08 · 1121 阅读 · 0 评论 -
把自定义控件集成到Qt Designer中
要想在Qt Designer中使用自定义控件,必须要使Qt Designer能够知道我们的自定义控件的存在。有两种方法可以把新自定义控件的信息通知给Qt Designer:“升级(promotion)”法和插件法。升级法最为简便快捷。顾名思义,升级法就是把Qt自有的控件进行升转载 2011-08-24 14:04:45 · 4456 阅读 · 0 评论 -
Qt中添加背景图片的方法
工作似乎走上正轨了,上周五的工作是做一个界面,用到QFrame和QPushButton,QFrame做主面板,QPushButton为其子控件,需要在主面板上贴背景图片,还需要在QPushButton上贴上相应的图标,弄了一天,再加上今天一小会,终于有一点点结果了。通过从转载 2011-09-28 14:40:28 · 2456 阅读 · 0 评论 -
QT:文件的读写操作
在程序中,读和写是非常常用的操作,但QT读写的这几行代码我老是记错,唉。。。//文本文件的写QFile file("temp.txt"); if (!file.open(QIODevice::WriteOnly)) return; QTextStream原创 2011-10-17 11:30:23 · 1518 阅读 · 0 评论 -
vs下qt工程设置exe图标
1.在项目文件夹里创建名为*.rc的文件,如myapp.rc。2.文件中写入IDI_ICON1 ICON DISCARDABLE "myapp.ico" 其中,myapp.ico为图标的文件名。3.将文件myapp.ico拷贝到项目文件夹内。4.在解决方案资源管理器中,右键点击项目,添加myapp.rc及myapp.ico。5.重新生成解决方案。原帖地址:ht转载 2011-10-21 14:09:48 · 2081 阅读 · 0 评论 -
QT 让窗口(或控件)居中
代码如下:XXX::XXX(QWidget *parent /* = 0 */){ .................. //注意,resize一定要放在这段代码的前面 resize(300, 300); int cx, cy; //当parent为空时,窗口就显示在桌面中央 if( NULL == parent ) { cx = (QApplication::原创 2011-11-15 17:44:33 · 15988 阅读 · 1 评论 -
VS2008下C++窗体程序显示控制台的方法
老蔡写了一个基于QT的窗体程序,而过去写的类的调试信息都是用cout显示的,苦于窗体程序无法显示cout信息很多信息都看不到,于是就想到让控制台和窗体同时显示。显示控制台方法如下1.项目(或者叫“工程”,或者project)2.连接器(linker)3.系统(system)4.将第一项选成控制台(Console)。不过务必要记得选择控制台前是在什么选项上,等调试结束转载 2011-11-01 10:23:16 · 4418 阅读 · 1 评论 -
QT程序安装包制作(windows)
QT程序设计完毕时,我们就要发布自己的程序,发布程序有两种方法:一是静态编译,二是制作程序安装包。静态编译好麻烦,我从来没有成功过,所以我用了动态编译方法,设计完成时,用release方式编译程序,把生成的EXE文件和其依赖的库放在一个文件夹中,用setup2go生成安装文件。软件的下载地址:好,我们启动程序,选择文件>>>>>>>新建工程。保存工程项目转载 2011-11-25 22:03:30 · 7357 阅读 · 1 评论 -
QT QTableWidget 用法总结
QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并转载 2012-01-31 16:47:54 · 2916 阅读 · 0 评论 -
基于QT的IM(jabber)库和客户端
本文来自http://blog.csdn.net/cymlife 原创,引用必须注明出处! 基于QT的IM(jabber)库和客户端 这段时间一直在研究跨平台的IM(jabber)客户端,经过大量的下载、编译、测试、评估,作此记录。使用QT作为表现层,源于QT提供了丰富的控件,以及强大的跨平台能力。jabber是一个基于XMPP协议的IM应用,解决了做什么和怎么做的转载 2013-05-24 20:36:56 · 2183 阅读 · 0 评论