随笔分类 -  Qt

qt的学习
摘要:用qtcreater编译完工程生成的exe文件往往会依赖dll文件。如何一次定位exe文件所以依赖的所有dll文件呢,今天发现了软件叫hap-depends。截图如下:用这个软件打开exe文件就会显示出依赖的dll文件,如果是qt程序我们只需要把安装目录bin下的dll文件copy到和exe相同的文件夹下即可。 阅读全文
posted @ 2013-12-24 11:13 onlycxue 阅读(2256) 评论(0) 推荐(0) 编辑
摘要:打了一周的环境,从ubuntu到win7,搭建环境的时间比写代码的时间都多。先简单的介绍一下我搭建的环境不是纯QT环境,是一个芬兰的软件开发商开发出来的SDK里面完全融合qt,其中qt是以单独的目录存在的,最近项目需要,要连接mysql数据库,配置好Qtcreator后死活连接不上,提示信息如下:QSqlDatabase: QMYSQL driver not loadedQSqlDatabase: available drivers:一般的错误提示信息的available drivers:后面还会有相应的sqllite ,ODBC 等等,我这个问题比较奇怪,available drivers 阅读全文
posted @ 2013-09-05 17:56 onlycxue 阅读(1101) 评论(0) 推荐(0) 编辑
摘要:今天在.pro文件中添加了mysql的库的路径,结果出了问题,把mysql单独出来,编译是没有问题的。有问题的写法LIBS += -lMultiWidgetsINCLUDEPATH += /usr/local/include/htmlcxx/htmlLIBS += -L \ "/usr/local/lib" \ -lhtmlcxxINCLUDEPATH += /usr/include/mysqlLIBS += -L "/usr/lib" -lmysqlclientCONFIG += debugCONFIG += qt改写如下可以了:INCLUDEPATH 阅读全文
posted @ 2013-06-15 18:46 onlycxue 阅读(334) 评论(0) 推荐(0) 编辑
摘要:最近整了个htmlcxx库用来解析html程序,在window是搭了半天现在又开始搞ubuntu下的搭建,之前网上有人说可以使用下面的命令(sudo apt-get install htmlcxx)进行下载安装,结果发现不是那么回事,不可行的,于是我还是从网上找来源码包进行ubuntu下老一套的安装。首先执行./configure --prefix /usr/local/htmlcxx(make ;make install 就略去)。再使用的时候我在Qt的工程里添加了INCLUDEPATH += /usr/local/htmlcxx/include/htmlcxx/htmlLIBS +=/us 阅读全文
posted @ 2013-06-01 15:44 onlycxue 阅读(1927) 评论(0) 推荐(0) 编辑
摘要:向comboBox部件里添加元素QStringList string; string<<"高"<<"低"; ui->comboBox->addItems(string);个人理解这也是Qt的MVC模型的体现,QStringList是装载数据的model,当然comboBox就是view怎么获取comboBox里的数据呢,可以这样ui->textEdit->setText(string[ui->comboBox->currentIndex()]); 阅读全文
posted @ 2013-01-22 13:55 onlycxue 阅读(5935) 评论(0) 推荐(0) 编辑
摘要:在做智慧农业实训系统的时候,我开了个定时器用来判断界面节点的掉电情况。结果出现了刷屏的现象。郁闷,不解,以后可以深究为什么,从网上找了一篇博客来解决问题,尊重原版http://blog.csdn.net/jwybobo2007/article/details/8314271编写QT程序时,时常会需要使用定时器QTimer来执行一些定时任务,但当定时任务执行的时间过长,则会影响整个界面的响应,因此会想到使用另一个工作线程来执行定时器,一般情况下可以选择从QThread派生一个线程类,然后重载run并执行任务逻辑,那下面就介绍一个不用从QThread派生并使用QTimer的例子。主窗口类头文件.. 阅读全文
posted @ 2013-01-15 17:11 onlycxue 阅读(2343) 评论(0) 推荐(0) 编辑
摘要:最近在看Qt的Model/View Framework,在网上搜了搜,好像中文的除了几篇翻译没有什么有价值的文章。E文的除了Qt的官方介绍,其它文章也很少。看到一个老外在blog中写道Model/View是他认为Qt中最不好的一部分了。真的是这样吗?为了回馈开源社区,我写了这篇blog,写的是我认为比较有价值的东东。题目起得是解析,但也没有特别细节的介绍,点到为止,有兴趣的Tx可以继续讨论。我所看的资料有《C++ GUI Programming with Qt 4, Second Edition》、Qt官网和Qt源代码。 在UI中,最常用的就是list/grid/tree了(在Qt中,grid 阅读全文
posted @ 2013-01-07 18:35 onlycxue 阅读(4792) 评论(0) 推荐(0) 编辑
摘要:最近做智慧农业的项目,在网络配置时要动态获取本机的IP地址以及子网掩码和DNS,研究了一段时间终于有结果1.用到网络相关的类要在工程文件.pro里加入下面一句话,告诉编译器加入网络模块QT +=network2,用到的Qt的类QNetworkInterface :这个类会帮我们获取本机的所有网络接口,存储网络接口的名称以及物理地址等QNetworkAddressEntry:可以帮我们存储网络接口的IP地址,子网掩码,以及广播地址等一般将这两个类联合起来使用 QList<QNetworkInterface> list = QNetworkInterface::allInterface 阅读全文
posted @ 2012-12-26 19:52 onlycxue 阅读(1087) 评论(0) 推荐(0) 编辑
摘要:udpSocket = new QUdpSocket(this); QByteArray datagram = "blog.const.net.cn"; udpSocket->writeDatagram(datagram.data(), datagram.size(), QHostAddress::Broadcast, 45454); udpSocket->bind(QHostAddress("192.168.1.104"), 45454); UDP客户端广播QUdpSocket *udpsocket1 = new QUdpSocket(th 阅读全文
posted @ 2012-12-21 09:11 onlycxue 阅读(7103) 评论(0) 推荐(0) 编辑
摘要:Qt在嵌入式开发中经常遇到没有头绪的错误提示,有的时候很难找到问题的所在,就我目前这两天遇到的问题做一个小总结,如下:setdevinfraweb.o: In function `setDevInfraWeb::setDevInfraWeb()':setdevinfraweb.cpp:(.text+0x38): undefined reference to `vtable for setDevInfraWeb'setdevinfraweb.o: In function `setDevInfraWeb::~setDevInfraWeb()':setdevinfraweb. 阅读全文
posted @ 2012-12-15 17:25 onlycxue 阅读(379) 评论(0) 推荐(0) 编辑
摘要:作为Qt的菜鸟,一直以为Qt的界面很呆板,没有什么突破,甚至有时候认为Qt真的out了,最近,老大又让做“智慧农业”的实训系统,要求界面还要有别的风格,我昨天从网上找了好多,关于Qt美化界面的有QSS和QML,今天早上从网上找了一些相关的文章并做了一些测试(QSS方面的),很激动,很神奇,现在的体会就是Qss可以给部件化妆,方的可以画成圆的,也可以给部件“穿衣服”,穿各种颜色。。1,首先要写一个.qss文件。QPushButton{ border:2px solid gray; border-radius: 10px;}QPushButton:hover{ color:whi... 阅读全文
posted @ 2012-12-12 18:21 onlycxue 阅读(11373) 评论(2) 推荐(1) 编辑
摘要:我一般使用固定的方式给窗体添加背景void controlForm::setWidgetbackground(QWidget *widget,QPixmap image){ QPalette palette; palette.setBrush(backgroundRole(),QBrush(image)); widget->setPalette(palette);}但有时候添加不成功因为忘记了设置下面的属性 阅读全文
posted @ 2012-12-06 16:30 onlycxue 阅读(2043) 评论(0) 推荐(0) 编辑
摘要:F1使用方法:选中某一类或函数,按下F1,出现帮助文档 F2使用方法:选中某一类或函数,按下F2,迅速定位到该类或函数声明的地方或被调用的地方 Ctrl+鼠标滚轮的使用方法:按住Ctrl,使鼠标滚轮旋转,可调整字体的大小 Ctrl+F使用方法:(作用:查找当前文档)选中你想选的内容之后,按下Ctrl+F,会列出所有和你选的内容一样的语句 F4使用方法:在*.cpp和*.h之间切换 Ctrl+1,2,3,4,5,6使用介绍:在Welcome,Edit,Debug,Projects,Help,Output几种模式之间切换 F3作用:查找下一个你选的内容 Shift + F3作用:查找... 阅读全文
posted @ 2012-12-05 14:50 onlycxue 阅读(384) 评论(0) 推荐(0) 编辑
摘要:智能家居的项目从9月20号左右开始做的,昨天联调出了一堆的问题,还是应该记住这些。1,温湿度显示有问题(解决了,原因是没有计算对,做这个计算有点盲目,从某人口中得到的算法,结果发现算法有问题)。2,灯不好用(解决了,因为灯这个类我实例化了两个对象,我用的标志位来区分的,真正处理状态时我只是判断类型,这样造成了两个传感器的状态是一样的)。3,多了一个光照检测(原因是由于switch case里少了一个break,而下面就是“光照照检测”的信息)4,未定义模式下不报警(忘记了做这方面的处理)5,卡屏问题。(已经解决,主要是因为每个信号来的时候我总让他傻瓜似的连接槽了,还有更新传感器的状态。我给他加 阅读全文
posted @ 2012-11-22 19:09 onlycxue 阅读(1763) 评论(0) 推荐(0) 编辑
摘要:先说一下整体思路,其实很简单主要使用到了Qt 的定时器,两个QWidget窗体,消息窗我们只要让它按着定时器的节奏把它向左移动它的宽度或向右移动它的宽度从而实现消息框的弹出与隐藏。主要代码:#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include "form.h"#include <QTimer>namespace Ui { class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Widget(QWidget 阅读全文
posted @ 2012-11-05 18:22 onlycxue 阅读(10740) 评论(0) 推荐(0) 编辑
摘要:先说一下,我对Qt的开发方式,我是通过板子挂载虚拟机 然后通过smb服务实现PC机与虚拟机的共享目录的访问。 这几天做项目真好要用到数据库,当然不二的选择就是用Qt自带的sqlite数据库,来做,于是我在xp系统用Qtcreator创建了一个简单的小程序,来做一下实验,运行起来试下面这个样子的点击一下查看按钮,会添加一条信息,在pc机上很容易实现了,但在Arm开饭板上,数据库能打开但执行插入的操作的时候总是报错,我把我能想到的可能都想到了,1,修改了一下数据库的权限,2,export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Trolltech/Q 阅读全文
posted @ 2012-11-01 19:47 onlycxue 阅读(4684) 评论(0) 推荐(0) 编辑
摘要:Qt的QString类提供了很方便的对字符串操作的接口。使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替。QString::fill ( QChar ch, int size = -1 )例: QString str = "Berlin"; str.fill('z'); // str == "zzzzzz" str.fill('A', 2); // str == "AA"2,从字符串里查找相同的某个字符串str。int QString::indexOf ( const QStrin 阅读全文
posted @ 2012-10-30 19:23 onlycxue 阅读(101697) 评论(1) 推荐(6) 编辑
摘要:不得不说Qt很强大,它完美的支持对文件的操作,说等到对文件的操作就要涉及到两个基本的类,QFile 和QTextStream,前者负责文件的打开,关闭 等等一些执行的操作,后者是对文件流的操作,对文件内容的读写,都要通过它来完成。void setOs::getNetcfg(){ QString s; QFile file("net.cfg"); if(file.open(QIODevice::ReadOnly)) { QTextStream stream(&file); QString line; while(!stream.a... 阅读全文
posted @ 2012-10-29 18:36 onlycxue 阅读(564) 评论(0) 推荐(0) 编辑
摘要:谈不上什么再谈,上次匆匆的写了点数据库的博客就放下了,今天做智能家居项目要用到数据库来存储报警信息,又出现了许多问题,不得在记一下。废话少说言归正传。如果每次收到信息跟创建数据表一样的,那么,当我们动态接受数据时不得已还要组合字符串,但最后不见得好弄,因为字符串里还要套字符串。query.exec("create table message (设备类型 varchar(20),设备编号 int," "网络地址 int, 归属房间 varchar(20),报警时间 varchar(20)) ");而QSqlQuery 类给我们提供了一个bindValue( 阅读全文
posted @ 2012-10-26 18:41 onlycxue 阅读(526) 评论(0) 推荐(0) 编辑
摘要:上次做的图片浏览存在最大的缺陷是listView中不能以缩略图的方式显示图片文件,考虑到项目的进度我另辟蹊径了。看下面Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); num = 3; filePath = new QDir("/mnt/xuechao/src"); ui->label->setAlignment(Qt::AlignHCenter); ui->label->setAlignment(Qt::Align 阅读全文
posted @ 2012-10-18 18:59 onlycxue 阅读(762) 评论(0) 推荐(0) 编辑