QT
moxiaomomo
虚怀若谷,大爱无疆
展开
-
Qt学习之路(48): 自定义委托
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://devbean.blog.51cto.com/448512/271255好久没有来写文章了,由于家里面宽带断了,所以一直没能更新,今天现在写上一篇。 还是继续前面的内容。前面我们分三次把自定义model说完了,其实主要还是那三个实例。在 model/view转载 2012-05-28 13:16:24 · 1376 阅读 · 0 评论 -
【Qt开发】qml页面的创建、呈现与销毁
先呻吟一下:win8与qt项目并着来做,压力有点大...初步接触qml,感觉很难上手。首先是参考资料较少,好的论坛少,语法咋看上去也有点怪怪的。相对于操着各种长枪短炮的xaml,qml显得有点寒酸。(抱歉,收回原话,qml的examples和demos还是比较详细和值得好好学习的)。好吧,下面言归正传。创建页面qml页面也就是一个组件,页面创建后需要手动销毁。我们可以这样创原创 2013-01-05 01:14:09 · 12609 阅读 · 10 评论 -
【Qt开发】关于编译时报"undefined reference to"问题
前几天做Qt项目时,碰到了许多蛋疼的编译问题,下面便是一个。例如有两个工程A和B,工程A依赖于工程B。B中定义了一个类和一些方法,在A中调用它们。编译的时候编译器报出undefined reference to some_method的错误。这个意思就是说找不到相关的库吧;查了一下论坛,原来这就是Qt中的一个经典错误。解决方法如下:在.pro文件中添加上对应的引用库,如 LIBS +=原创 2012-12-30 21:46:18 · 6010 阅读 · 0 评论 -
Qt 出现“undefined reference to `vtable for”原因总结 (ZZ)
由于Qt本身实现的机制所限,我们在使用Qt制作某些软件程式的时候,会碰到各种各样这样那样的问题,而且很多是很难,或根本很难找到原因的,即使解决了问题,假如有人问您为什么,您只能回答--不知道;今天我在这里列举的问题也是再编写Qt程式时,总是碰到的问题,问题普遍,而答案却不唯一,解释这一个问题的说法很多,往往只适合某一种情况,因为这个错误太笼统了,他就是-- “undefined referen转载 2012-12-27 09:40:23 · 1352 阅读 · 0 评论 -
【Qt开发】调起外部程序/进程
在Qt4中,QProcess作为QIODevice的继承类,主要用来实现启动外部应用程序,并且进行进程间通信的。调起外部程序,主要有两种方式: start()和startDetached()。这两种方式的区别是,start()后的进程与原有进程属于父子进程关系,当父进程退出后,被调起的进程也会结束;而startDetached()会在程序调起完成后,将这两个进程分离开来。(1)star原创 2012-12-27 21:35:20 · 10075 阅读 · 1 评论 -
【Qt开发】QTableWidget 判断cell内容为空
判断cell内容为空, 可以这样实现:if(ui->tableWidget->item(i,j)==NULL|| //判断指向该cell的指针是否为空 (ui->tableWidget->item(i,j)&& ui->tableWidget->item(i,j)->text()==tr("")) //判断该cel原创 2011-04-16 20:22:00 · 8345 阅读 · 0 评论 -
【Qt开发】Qt中的中文字符问题
之前查了关于处理中文字符的一些资料,说法不一,有些方法又没有效果。只好最终自己尝试了一种适合当前程序的方法。(1)首先在主函数中重置程序的默认字符编码:#include #include #include "mainwindow.h"int main(int argc, char *argv[]){ QApplication a(argc, argv);原创 2012-05-23 01:38:14 · 4466 阅读 · 0 评论 -
【Qt开发】Qt gui添加右键菜单事件
要在某一种窗体内添加右键菜单栏,比如在QTreeWidget中添加,可以用到slot函数customContextMenuRequested(QPointpos)。 如果是在Qt Creator中,则操作过程为:右击QTreeWidget-->go to slot---->选择customContextMenuRequested(QPointpos)。然后,在新建的cust原创 2011-06-14 01:02:00 · 17956 阅读 · 6 评论 -
【Qt开发】Qt GUI编程中设置输入等待
比如有一个关于问答游戏的程序,程序只有在输入当前问题的答案才会继续提问下一个问题,而输入答案是由玩家来操纵的,程序要时刻监测输入情况。 这种问题在控制台很容易解决,在Qt GUI应用程序则要用到线程来解决, #include //......代码省略while(!isSend)//isSend是输入答案的确认变量 { QCoreApplication::proce原创 2011-05-31 22:20:00 · 2139 阅读 · 0 评论 -
【Qt开发】Qt4 TextEdittor将内容保存到QString对象
初学Qt不久,很多东西既新鲜又陌生呀。而最近一直奇怪怎么没有TextEdittor中text()这个函数...纠结了那么久,原来就那么简单!解决方法如下:QString s=ui->textEdit->toPlainText();QString是Qt库中对C++源生字符串类型的一种封装。标准C++中只提供了两种字符串: C风格的以'\0'作为结束符的字符数组;和std::str原创 2011-04-13 12:50:00 · 2082 阅读 · 1 评论 -
【Qt开发】QString,std::string,char*,int等类型数据的转换
QT中三种数据类型之间的转换: QString qtStr; std::string stdStr; char* chStr;则有:(1)qtStr = stdStr.c_str(); qtStr = QString(chStr);(2)stdStr = qtStr.local8Bit(); 或者stdStr=qtStr.toStdString;(3)原创 2011-06-29 01:09:00 · 9423 阅读 · 0 评论 -
【Qt开发】实现Qt程序启动画面
如果一个程序的启动时间较长(例如需要提前加载的数据量比较大),那么一般来说程序会有一个启动画面。这样既让用户看到程序正在启动而不是简单乏味的的等待,同时也显示了程序的一些有用信息,例如程序logo, 功能模块或产品信息等。在Qt应用程序中,可以通过QSplashScreen类来实现启动画面。下面是一个简单的例子,实现了加载splash图片,并在显示画面的同时预加载了程序的一些模块数据。原创 2012-05-28 12:46:00 · 10866 阅读 · 1 评论 -
【Qt开发】Qt信号与槽 示例
假设基于这样的一个情况:在某一个程序里有两个主要的两个逻辑功能部分---UI交互的功能块和用于网络通信的网络功能块。当网络中有新的消息到达时,网络功能块需要通知UI刷新信息的显示;当用户输入新的操作命令或信息时,UI功能块将通过调用网络程序来进行数据的传送。在非Qt程序中,我们一般是通过函数的回调或事件监听机制来实现这样的程序。打个比方,假设有类A和类B,类A对象中存有类B对象的指针,同时原创 2012-05-23 10:44:07 · 5299 阅读 · 3 评论 -
【Qt开发】修改源码文件的编码格式的小技巧
默认情况下,代码文件应该以utf-8的格式来存储的。而如果在代码文件的转移或者上传下载过程中,弄乱了文件的编码格式,一般会出现乱码的情况。例如windows系统下,中文就很容易出现乱码,如下图,文件本来是在utf-8格式下进行编辑的,结果却意外保存成了GB2312格式。如果知道原来的编码格式是什么,可以直接通过"选择编码"来选择正确的编码方式。而如果不清楚原有的格式原创 2012-12-24 19:54:05 · 8873 阅读 · 0 评论 -
【Qt开发】Qt 捕捉窗口关闭事件与信号的捕捉
有时候我们希望在关闭窗口之前做一些操作,例如保存缓存数据或向用户提示是否关闭窗口等等。由于一般的窗口都是继承自QWidget, 那么我们可以通过覆盖QWidget中的虚函数closeEvent(QCloseEvent* event);来达到这个目的。(1)首先添加依赖库:#include (2)接着声明和定义closeEvent函数: a).h文件p原创 2012-05-21 14:56:20 · 34864 阅读 · 2 评论 -
【Qt开发】qml组件下拉列表的实现(二)
上一篇博文我们说到了qml组件下拉列表的实现,但只能支持单选功能。在这篇文章,我将会讲一下本人下拉列表复选功能的实现方法(不代表是好方法,仅供参考)。首先,在点击和鼠标划过等高亮效果方面,依然是自定义的;每个item被选中将会有高亮。然后和单选下拉列表不一样,点击选中时并没有立即收回。同时,定义了一个数组,数组元素的值为0和1(其意义如代码中注释所示);在触发Click事件时,将会改变这些原创 2013-01-09 09:54:22 · 7661 阅读 · 1 评论