QT文章
文章平均质量分 88
seanyxie
谢思源的个人博客
展开
-
基于mini2440的QT程序移植
<br />利用QT_Creator来编写QT程序,建立一个空工程,然后逐步添加.h和.cpp,主要利用Creator的自动补齐和手册功能方便,然后保存工程,进入工程目录,把源文件和头文件拷贝到另一个文件夹里面,参考hello的.pro文件来编写这个程序的。pro 文件,<br />.pro 文件格式如下<br />CONFIG += qtopiaapp<br />CONFIG -= buildQuicklaunch<br />DESTDIR = $(QPEDIR)/bin<br /> <br />HE原创 2010-07-09 13:01:00 · 2507 阅读 · 1 评论 -
设置 按钮保持状态
<br />我们看到很多软件,当鼠标停靠悬浮在一个按钮上面时候,按钮的样式就会改变,改变图片或者字体,或者形状<br />当按钮被按下时候,它的状态仍旧还会改变,这种效果可以用下面的方法来实现<br /> <br />Qt的Button的基类有一个函数setCheckable(bool)可以让按钮有一个选中的状态,还有一个setAutoExclusive(bool)可以跟radiobutton一样可以跟其他radiobutton保持只有一个选中的按钮。因此可以用这两个函数实现360的按钮。 在一个部件中所有原创 2010-10-19 18:10:00 · 7024 阅读 · 0 评论 -
最小化到托盘并有图标闪烁效果
利用QSystemTrayIcon类来实现最小化托盘,并实现像QQ那样有消息闪烁图标的效果但是程序运行到最后有个让我找了很久都没有找到的问题,就是当点击了图标的MessageBox()后,程序就自动退了了,并且exit with code 0代码贴出来分享,也希望这个问题能在大家的帮助下找到原因widget.hclass Dialog : public QDialog { Q_OBJECTpublic: Dialog(QWidget *parent = 0); ~Dialog();原创 2010-10-22 16:21:00 · 6330 阅读 · 3 评论 -
多线程总结
<br />进入run()函数后,新线程就开始运行,有自己的堆栈。<br />出了run()函数后,新建的线程就结束,并会发出信号,可以在另外一个线程中捕获,然后响应。、<br /> currentThreadId()和currentThread()分别会返回线程的ID号和线程对象指针。<br /> <br />最后在run()中调用exec()开始本线程的事件循环。<br />调用exit()或者quit()来退出线程。<br /> <br />QMutex加锁时候,其他的读和写都不能进行<br />他的原创 2010-11-12 20:59:00 · 3849 阅读 · 0 评论 -
Qt跨线程信号和槽的连接
Qt支持三种类型的信号-槽连接:1,直接连接,当signal发射时,slot立即调用。此slot在发射signal的那个线程中被执行(不一定是接收对象生存的那个线程)2,队列连接,当控制权回到对象属于的那个线程的事件循环时,slot被调用。此slot在接收对象生存的那个线程中被执行3,自动连接(缺省),假如信号发射与接收者在同一个线程中,其行为如直接连接,否则,其行为如队列连接。原创 2011-11-29 22:11:48 · 7424 阅读 · 0 评论 -
QTreeWidget的用法
<br />QTreeWidgetItem有九个重载的函数,如果在构造的时候指定了parent,就不需要在后面用insertTopLevelItems来插入到里面,如果没有指定parent,就把所有的根节点放到QList中,然后使<br />用insertTopLevelItems(int,QList)插入到QTreeWidget里面<br />QTreeWidgetItem::addChild(QTreeWidgetItem*)用于根节点添加子节点<br />QTreeWidget::setColumnC原创 2010-08-22 12:40:00 · 13087 阅读 · 0 评论 -
QTableWidget的使用和美工总结
本来想找找QT里有没有现成的API的,结果没有找到,只能自己写了。实现也好实现,QTableWidgetItem里面有修改背景色的API,直接调用,然后用循环控制隔行换色即可。实现代码:void testtt::changeColor(QTableWidget *tablewidget){for (int i = 0;i rowCount();i++){ if (i % 2 == 0) { for (int j = 0;j columnCount();j++)原创 2010-08-17 01:18:00 · 14758 阅读 · 1 评论 -
Qt远程控制源代码下载
Qt 远程控制源代码下载地址http://www.seanyxie.com/qt%E8%BF%9C%E7%A8%8B%E6%8E%A7%E5%88%B6%E6%BA%90%E4%BB%A3%E7%A0%81%E4%B8%8B%E8%BD%BD/原创 2014-03-09 17:48:44 · 3426 阅读 · 3 评论 -
Qt 聊天软件 源码下载
Qt 局域网聊天软件 c++源代码下载http://www.seanyxie.com/qt%E5%B1%80%E5%9F%9F%E7%BD%91%E8%81%8A%E5%A4%A9%E8%BD%AF%E4%BB%B6c%E6%BA%90%E7%A0%81%E4%B8%8B%E8%BD%BD/原创 2014-03-09 16:34:54 · 3330 阅读 · 1 评论 -
QT 中QTextEdit添加图片
在文本编辑框中添加图片,需要借助QTextDocument把图片作为资源添加到QTextEdit中The QTextDocument class holds formatted text that can be viewed and edited using a QTextEdit.QTextDocument is a container for structured rich text原创 2010-08-11 18:01:00 · 13564 阅读 · 2 评论 -
QComboBox用法小结
fromComboBox = QComboBox() 添加一个 combobox fromComboBox.addItem(rates) 添加一个下拉选项 fromComboBox.addItems(["%d years" % x for x in range(2, 26)]) 从序列中添加 fromComboBox.setMaxVisibl原创 2010-08-14 09:58:00 · 30561 阅读 · 12 评论 -
model-view模型之QListView和QStringListModel
以QListView为例子,QListView是不显示表头和表框的,如果要显示,可以使用QTreeView来代替view的显示属性分为列表list显示和icon图标显示,使用QListView::setViewMode()来设置,默认为list型的 QListView::setModel ()用来设置view所关联的model 获取view中当前的位置,QListVie原创 2010-08-22 22:32:00 · 5910 阅读 · 1 评论 -
Detour使用方法以及原理
Detour的用法示例原创 2014-07-15 15:56:07 · 12835 阅读 · 0 评论 -
QT工程中使用图片的三种方法
图片是一种资源,而在Qt中,对于资源的使用是有其独特的方式的! ①:一般来说:资源在内存中是用资源对象树来表示的,该树在程序启动时创建。 ②:而对于资源而言:我们都是需要先将其加入到这棵树中才能加载到内存中并被程序使用!! ③:而将一个图片资源放到程序的资源对象树中是用函数QResource::registerResource()来实现的。亦即:要将资源向这颗资源对象树进行注册,这样才对在系统中new创建这个资“叶子”。Qt中经常会使用一些图片作为程序的界面,经常用的有三种方法,这里原创 2010-10-25 00:14:00 · 12434 阅读 · 1 评论 -
QListWidget用法
<br />setSelectionMode()设置list一次最多可以选择多少item<br />有两种方法来listwidget中添加Item,一种是在item构造时候,指定父widget,<br />如果item构造时候QListWidget已经存在,可以用下面的方法<br />new QListWidgetItem(tr("Oak"), listWidget);<br /><br />第二种方法是构造完item,在使用QListWidget::addItem()来添加item<br /> <br /原创 2010-08-21 16:53:00 · 26664 阅读 · 5 评论 -
qt qml中PropertyAnimation的几种用法
qml是qt移动开发跨平台方案,propertyAnimation则提供了qml中动画效果原创 2014-07-15 15:56:53 · 5611 阅读 · 1 评论 -
qml部署ios播放声音的一些问题
要在qml中播放一段声音,比如游戏音效,非常简单,可以使用Audio或者SoundEffec但是他们两者是有区别的,参考这个https://www.ics.com/blog/qt-5-multimedia-qml-elements#.U-9RY9yaBvQ我在mac上编译,Audio是不起作用的,换用了SoundEffec,测试没问题使用qmake生成x原创 2014-08-25 23:13:52 · 2444 阅读 · 1 评论 -
Qt出现错误“undefined reference to `vtable for XXXXX.XXX”
<br />如果新建一个类,继承了某个类,在这个类的头文件中式没有 Q_OBJECT宏声明的,如果想使用signal-slot信号,就需要添加Q_OBJECT宏,但是添加了这个宏后,就可能会出现这种错误,“undefined reference to vtable for LcdNumber”的编译错误<br />这是因为在Makefile里面没有这个类并没有Q_OBJECT信息,所以在执行Makefile时候也就没有moc xxx.h这条命令,最终导致连接失败。<br />知道了这个原因后,解决方法就很简原创 2010-11-28 20:26:00 · 5574 阅读 · 7 评论 -
setStyleSheet来设定窗口部件的样式
<br />使用setStyleSheet来设置图形界面的外观:<br />QT Style Sheets是一个很有利的工具,允许定制窗口的外观,<br />此外还可以用子类QStyle来完成,他的语法很大比重来源于html的CSS,但是适用于窗口<br /> <br />概括:<br />Style Sheets是文字性的设定,对于整个应用程序可以使用QApplication::setStyleSheet() 或者对应一个窗口可以使用QWidget::setStyleSheet(),如果好几个样式表在不同原创 2010-10-07 20:30:00 · 19908 阅读 · 3 评论 -
QT获取本机IP,本地IP
<br />QString str;<br /> QList<QHostAddress> NetList = QNetworkInterface::allAddresses(); //取得全部信息<br /> for(int Neti = 0;Neti < NetList.count(); Neti++)<br /> {<br /> str = NetList.at(Neti).toString();<br /> //qDebug()<<str;<br /> if(str != "127.原创 2010-07-10 13:07:00 · 2491 阅读 · 0 评论 -
在socket中发送中文的方法
<br /> <br />QT中封装的socket类有QUdpSocket 和QTcpSocket,但是发送和接受的函数<br />qint64 writeDatagram ( const char * data, qint64 size, const QHostAddress & address, quint16 port )<br />qint64 writeDatagram ( const QByteArray & datagram, const QHostAddress & host, quint1原创 2010-08-10 19:34:00 · 6433 阅读 · 5 评论 -
自己写的Linux QQ
<br />从7月29号开始,今天8月11号,7号到学校,每天除了吃饭,都在办公室呆着,不过外面太热了,也没有出去,最近刚学了QT,就写了一个山寨QQ,所有的资料都是英文的,一时间真的看得脑袋大,只要坚持,只要努力,看英文资料不算什么困难,努力写代码,把这条路坚持下去<br /> <br />主要功能:<br />1、通过UDP协议 socket与服务端进行消息的发送,接受<br />2、客户端隐藏控制面板中,有功能拓展:浏览器和音乐播放器<br />3、采用多进程打开音乐播放器<br />4、同步打开浏览原创 2010-08-11 16:05:00 · 2529 阅读 · 2 评论 -
程序退出的几种方法
<br />首先看函数QApplication::setQuitOnLastWindowClosed(bool) ,该函数的作用是<br />This property holds whether the application implicitly quits when the last window is closed.<br />The default is true<br />即控制着当最后一个可视的窗口退出时候,程序是否退出,默认是是的<br />如果使用app.setQuitOnLastWind原创 2010-08-11 23:26:00 · 8200 阅读 · 0 评论 -
QT 多媒体软件设计
<br />QT中多媒体的播放,phonon 主要使用MediaObject ,sinks,path的方法<br />MediaObject 用于对媒体流基本控制,如播放,暂停,停止等,通过读取MediaSource<br />MediaCtroller用于对媒体进行控制,如章节,菜单,列表等管理<br /> <br />sinks<br />用于从phonon中输出媒体到硬件设备声卡等,<br />path用于连接MediaObject 和sinks,在他们之间建立联系,输送媒体文件<br />crea原创 2010-08-12 20:22:00 · 4147 阅读 · 3 评论 -
QFileDialog的用法
<br />Qt中 文件对话框QFileDialog 的使用<br />资料来源于Qt官方文档,我总结了其中常用到的部分:<br />一. 最简单的方法是调用静态函数来对话框获取文件:<br />QString file = QFileDialog::getOpenFileName(<br /> "/home/foxman",<br /> "Images (*.png *.xpm *.jpg)",<br />原创 2010-08-14 13:21:00 · 28105 阅读 · 2 评论 -
消去window的最大化和最小化按钮
MainWindow w;w.setWindowFlags(w.windowFlags()&~Qt::WindowMaximizeButtonHint&~Qt::WindowMinimizeButtonHint);原创 2010-08-14 19:37:00 · 4067 阅读 · 0 评论 -
QT产生随机数和定时器
1、利用事件来定时void timerEvent(QTimerEvent *); 系统事件槽原创 2010-06-26 00:52:00 · 2287 阅读 · 1 评论 -
自己写的Linux 移动飞信
<br />开发语言:C++<br />开发框架:QT Creator QT4.6.3 version<br />开发平台:Red Hat Linux Enterprise 5<br /> <br />设计思想:调用中国移动的飞信API,讲用户信息发送给指定的URL,Linux curl来解析URL,将信息发送出去,遗憾的是不知道如何获取飞信服务器的数据包,因此只能发送短信,不能同步将接收到的飞信获取。<br />较以前写的程序,这次用了大量的代码来使界面更加完美,例如在信息编辑框中都是用了指定透明度效果原创 2010-08-17 15:24:00 · 2673 阅读 · 6 评论 -
QT 创建鼠标右键菜单
<br />QWidget及其子类都可有右键菜单,因为QWidget有以下两个与右键菜单有关的函数: <br />Qt::ContextMenuPolicy contextMenuPolicy () const <br />void setContextMenuPolicy ( Qt::ContextMenuPolicy policy ) <br />Qt::ContextMenuPolicy枚举类型包括:Qt::DefaultContextMenu, Qt::NoContextMenu, Qt::Prev原创 2010-08-19 23:04:00 · 6566 阅读 · 0 评论 -
QT的 Meta-Object系统
前面说过,Qt使用的是自己的预编译器,它提供了对C++的一种扩展。利用Qt的信号槽机制,就可以把彼此独立的模块相互连接起来,不需要实现知道模块的任何细节。 为了达到这个目的,Qt提出了一个Meta-Object系统。它提供了两个关键的作用:信号槽和内省。 面向对象程序设计里面会讲到Smalltalk语言有一个元类系统。所谓元类,就是这里所说的Meta-Class。如果写过HTML,会知道HTML标签里面也有一个,这是用于说明页面的某些属性的。同样,Qt的Meta-Object系统也是类似的作原创 2010-08-18 01:28:00 · 1703 阅读 · 0 评论 -
事件Qevent的接受和忽略 和重定义 事件过滤器
前面说到了事件的作用,下面来看看我们如何来接收事件。回忆一下前面的代码,我们在子类中重写了事件函数,以便让这些子类按照我们的需要完成某些功能,就像下面的代码:void MyLabel::mousePressEvent(QMouseEvent * event){ if(event->button() == Qt::LeftButton) { // do something } else { QLabel::mousePre原创 2010-08-18 18:29:00 · 4928 阅读 · 4 评论 -
QT中关于头文件一个很奇怪的问题
<br />最近在用QT Creator时候遇上一个很奇怪的问题,以往添加头文件使用#include<QStringListModel>这样的格式就可以,但是现在有时候却编译通不过,报了一大堆的错误,如下图<br /><br /> <br />但是如果修改成#include<qstringlistmodel.h>这样的格式,就可以编译通过,<br />如下图<br /><br /> <br />前后程序并没有修改,但是改了头文件就不行了<br />昨天用include<QVector>时候一样,但是第一次编原创 2010-08-22 16:00:00 · 4314 阅读 · 7 评论 -
使用代理model QSortFilterProxyModel进行item筛选和排序
Qt为我们预定义了很多model,前面已经说过了QStringListModel、QDirModel(也算是Qt推荐使用的QFileSystemModel吧,这个在上一章最后重新加上了一段话,没有注意的朋友去看看哦)。今天我们要说的这个QSortFilterProxyModel并不能单独使用,看它的名字就会知道,它只是一个“代理”,真正的数据需要另外的一个model提供,并且它是用来排序和过滤的。所谓过滤,也就是说按照你输入的内容进行数据的筛选,很像Excel里面的过滤器。不过Qt提供的过滤功能是基于正则表原创 2010-08-24 14:53:00 · 5271 阅读 · 0 评论 -
mini2440移植QT4.6.3过程
一般而言,Qt应用程序的内容可分为Qt库的编译,Qt库的移植和基于Qt的应用程序的移植。Qt库的编译所花费的耗线性时间代价是最长的,而Qt库的移植是比较简单的一个工作,只需要让串口发送数据到开发板上即可,笔者本人使用的是虚拟机提供的一个共享工具 wmwate-tools,在拷贝某些库的时候会出现不可以预知的错误,重试也无法解决这个问题,解决办法在于把库目录打包共享,这样的出错几率会比较低。最后,应用程序的移植,这部分所花费的非线性时间应该是最长的,在移植调试的过程中将会出现很多很多未能预知的问题,详细的解答原创 2010-08-30 18:53:00 · 3825 阅读 · 5 评论 -
移植到ARM的qt4.6.3显示中文的问题
移植了QT4.6.3的ARM无法正常的现实中文如果是在X86平台上时候,使用QTextCodec::setCodecForTr(QTextCodec::codecForLocale());来设置显示中文但是在ARM平台上却不行,我们需要移植一些中文字体库,这里使用的是QT自带的中文字体库,wenquanyi_120_50.qpf 放在QT的安装目录下 /usr/local/Trolltech/lib/fonts下面在/etc/profile中导出路径export QT_QWS_FONTDIR=/usr/lo原创 2010-09-23 17:18:00 · 5383 阅读 · 1 评论 -
qml动画控制器AnimationController
AnimationController:一般的动画是使用定时器来完成的,但是AnimationController允许给定的动画,手动控制,可以通过控制她的progress属性来操作动画的进度。completeToBeginning(),回到动画的初始状态,按照当前的动画进度,逆向回到动画的初始状态completeToEnd(),正向的播放动画,按照当前的动画进度,正向的播放到动画的最原创 2014-09-30 22:59:41 · 2145 阅读 · 0 评论