
qt
文章平均质量分 64
qt框架的基础和demo
写了程序换酒钱
Want to be a geek!!!
展开
-
jambi
大二在学java,所以有时会写点java的小程序,可是习惯了qt的界面,使用AWT和swing让我有些不适,后来发现了jambi,才知道原来早就有了java的绑定版,所以迫不及待的安装了上。 因为Eclipse的强大,所以搭建jambi的开发平台小菜一碟啊。 1.去qt的官网下载jambi的插件,解压添加到eclipse/plugins文原创 2012-06-05 22:40:16 · 2572 阅读 · 1 评论 -
qt中的多线程
在Qt进行多线程的编程,主要是使用提供的与平台无关的QThread类。 QThread类使用,在开发文档上的例子很少。文档提供的使用途径是重写run()函数,如下 在run()中实现的代码会在此线程中运行,可是在你继承类中你写的slots在那个线程中执行呢?这个一直很困扰我。后来做了许多实验终于发现,你继承QThread类的子类的slots在原创 2012-06-06 11:10:06 · 1637 阅读 · 0 评论 -
qt外部数据传入实现动态的折线图绘制
在嵌入式开发中,实现数据收集与显示很常见,对于希望数据稳定的应用来说, 折现图的表现形式很符合条件。 本实现是通过qt的signal-slot来实现折线图的动态显示,一个信号的到来,数据添加,然后重绘 这是其中使用到的一些数据结构 QListqreal> xList;/原创 2012-06-18 23:32:58 · 17781 阅读 · 20 评论 -
qt并行计算框架QtConcurrent和qt全局线程池
在qt中使用多线程除了使用QThread类之外,还有就是使用QtConcurrent框架和QRunable类(学java的都知道,在qt中的用法也和java一样)。 使用QtConcurrent和QRunable都会和全局线程池一起使用。 QtConcurrent和QRunable只是适用于多项的,而且各项之间的独立性很强。原创 2012-07-13 22:47:18 · 16672 阅读 · 1 评论 -
qt中使用启动画面
在程序打开的时候,启动画面是很正常的。 对于这个qt提供了QSplashScreen类,可是我在使用过程中,他总是一闪而过,不是我们想要的。我们使用启动画面,如果没有模块检测,那我们只是想它显示几秒钟而已。下面是我的办法,继承QSplashScreen,在加个定时器就行了。#ifndef SPLASHSCREEN_H#define SPLASHSC原创 2012-07-27 19:56:53 · 3798 阅读 · 5 评论 -
Qt中的垃圾收集机制
在Qt中我们有很多的new,可是却很少看见delete,这是因为也有自己的垃圾收集机制,当然不同于java的引用计数,Qt是以对象树的形式来实现对垃圾的收集。父类拥有并维护者一颗对象树。你在学一个类的构造函数时,格式是这样:xxx(QWidget *parent = 0),这里的parent就是父类的指针,即是把此类对象注册到父类的对象树中,当父类的对象释放时,对象树的对象也会释放,这样就不需要你原创 2012-07-30 09:59:59 · 3426 阅读 · 1 评论 -
qt折线图显示数据
前面也写了一个关于折线的,可是那个太...,暑假没事在家又弄了一个,希望它能够有一点可适应性和扩展性。 下面是代码实现 /*************************************************折线图绘制author 周翔2012-8-14****原创 2012-09-28 23:35:52 · 11711 阅读 · 16 评论 -
基于qt的多线程视频采集与传输
将服务端的设备虚拟化,供客户端调用。使用TCP/IP协议传输,使用V4L2实现视频采集。 只是实现了简单的功能。资源占用大,线程的终结还有问题,数据大,不知道用什么技术压缩图片。 这是最早的版本,比较新的版本没找到......这个版本的设备是固定添加的,比较新的版本是运行时扫描添加,还有就是客户端比较正式了。原创 2012-10-08 19:16:53 · 12056 阅读 · 18 评论 -
安装qt5后编译运行后有关Qt at-spi的警告
系统ubuntu12.04安装qt5,编译完成后,在运行软件时,总是 Qt at-spi: error getting the accessibility dbus address: "Did not receive a reply. Possible causes include: the remote application did not send原创 2012-12-21 22:45:34 · 2897 阅读 · 1 评论 -
qt状态机框架
这是以前做一个医疗系统的一部分程序,只是这个项目不了了之了。 如下图所示: /** * @brief machine 状态机 */ QStateMachine *machine = new QStateMachine; /**原创 2013-04-15 13:30:55 · 1871 阅读 · 0 评论 -
QML与Qt C++ 交互机制探讨与总结
介绍QML和 C++对象可以通过,signals,slots和 属性修改进行交互。对于一个C++对象,任何数据都可以通过Qt的 Meta-Object System暴露给QML(何总方法,后面介绍),同时,任何的QML对象数据通过Meta-object system在C++端直接访问。在实际的项目中很多地方会用到QML与Qt C++交互。在这里总结了若干方法供大家参考,欢迎大家指导和拍砖。转载 2013-04-18 18:18:50 · 2155 阅读 · 0 评论 -
Qt5摄像头截图
Qt5中去除了Phono,却而代之的是QtMultimedia,模块提供了许多与多媒体有关的类。 今天主要使用QCamera类来打开设备和显示图像,以及截图。 1.QCamera类这个QCamera类提供了接口系统相机设备QCamera能够被用和QVideoWidget一起取景器显示,和QMediaRecorder原创 2013-04-19 18:25:50 · 12321 阅读 · 31 评论 -
QMediaPlaylist类
QMediaPlaylist表面上只是一个媒体播放列表一样,保存了很多的媒体的路径,可是远不知这些。 此类有一个函数,void setPlaybackMode(PlaybackMode mode),而 enum PlaybackMode { CurrentItemOnce, CurrentItemInL原创 2013-04-19 18:53:43 · 6012 阅读 · 0 评论 -
Qt 出现“undefined reference to `vtable for”原因总结
真是太感谢这个博主了,我在cpp文件中使用了Q_OBJECT宏,总是报错,是在不知道错在哪里,真是太谢谢了。 由于Qt本身实现的机制所限,我们在使用Qt制作某些软件程式的时候,会碰到各种各样这样那样的问题,而且很多是很难,或根本很难找到原因的,即使解决了问题,假如有人问您为什么,您只能回答--不知道;今天我在这里列举的问题也是再编写Qt程式时,总是碰到转载 2013-04-22 20:44:34 · 1350 阅读 · 0 评论 -
视图代理
代理就是一个中间人的意思,也就是model和view之间的一个中间件,它协调两者之间的数据处理,以保证数据在显示层和model层的一致性。 在qt中实现自己的一个代理,一般继承自QItemDelegate类,当然也可以是QAbstractItemDelegate。 在做代理的时候,我们首先要明确一些问题,我们的编辑原创 2013-05-03 08:52:16 · 1530 阅读 · 0 评论 -
使用QTimeLine实现的一个简单信息提示窗体
使用QTimeLine提供的信号,改变窗体的透明度来实现的。 问题是回出现闪屏 上张图 代码在这 tooltip.zip 115网盘礼包接收地址:http://11原创 2013-05-10 21:17:28 · 2062 阅读 · 0 评论 -
Qt中使用QToolBox实现抽屉效果
#ifndef DRAWER_HPP#define DRAWER_HPP#include #include #include "listwidget.hpp"#include "listwidgetitem.hpp"class Drawer : public QToolBox{ Q_OBJECTpublic: Drawer(const QIcon &iconOp原创 2013-05-11 22:49:58 · 10065 阅读 · 0 评论 -
Qt mvc学习一
mvc是经典的三层结构,将数据,视图和逻辑分离。Qt中的Model/View框架,实现了这个模式。在Qt中这个模式设计到三个类,model类,view类和delegate类。model类保存数据,view复制显示,而delegate负责协调model和view之间的数据edit(编辑)和render(渲染)。 这些在model子类中需要实现的方法可以分为原创 2013-06-02 22:32:28 · 16992 阅读 · 4 评论 -
Qt mvc二
继续上次的例子,对于list才说只有行,讨论列是没有意义的。 bool insertRows(int row, int count, const QModelIndex &parent); bool removeRows(int row, int count, const QModelIndex &parent);在文档中,insertRows是这么写的,在支持这个操作的m原创 2013-06-04 22:11:22 · 5699 阅读 · 0 评论 -
Qt mvc 三
前面两节讲的model是一维的,这次开始二维的也就是我们常说的Table,相对与list,我们多了一个列的概念。下面讲解一个例子。我先说明一下我们这个例子,在程序目录下,我们有一个文本文件,其中存放的学生信息。数据存放的格式学号 姓名 性别xxx xxx x每个学生的信息占一行,现在我们需要将这个文件中的所有学生信息加原创 2013-06-06 11:39:46 · 4280 阅读 · 0 评论 -
qwt学习一
学习这个东西方向对了,就对了一半今天我开始学习基于qt库的一个开源的绘制2维的统计图的库--qwt。我们画东西首先要有一个容器,不然都是徒劳,今天我们就介绍这个类--QwtPlot它继承自QFrame和QwtPlotDict,QFrame提供一个QWidget的框架,QwtPlotDict为QwtPlot管理在其中的plot items,就是绘制的项。在QwtPlot上我们可以绘制无限原创 2013-06-18 18:24:58 · 26656 阅读 · 12 评论 -
基于epoll的聊天室程序
epoll相对于poll和select这两个多路复用的I/O模型更加的高效。epoll的函数很简单,麻烦的地方在于水平出发和边沿触发。 用张图来说明下 ET(边沿)只是在状态反转时触发,比如从不可读到可读。而LT(水平)就是如果可读,就会一直触发。所以在使用ET的时候要做一些额外的处理,比如可读的,一直把缓冲区读完,进入不可读状态,原创 2013-07-13 20:44:31 · 3985 阅读 · 0 评论 -
Qt中对象的释放
今天就来谈谈在qt中类对象的释放。在qt代码中大家会见到很多对象new了没有delete,你可能会疑惑,这不是会造成堆内存泄漏吗?在qt中其实有其的一套对象管理模型,虽然不及java,C#等语言的垃圾回收机制。1. LoginDialog ld(this);//指定父亲是为了显示的时候系统完成位置的计算 ld.setWindowTitle("Login"); ld.show原创 2013-08-04 07:46:32 · 10151 阅读 · 0 评论 -
Qt5.1.1 for Android
将我以前写的一个折线图程序试了试效果还行,可是文件大小来说就...debug版本release版本两者相差不大这是我的配置一开始下载的sdk说不能找到,然后下载了一个ADT,使用了里面的sdk目录才有用原创 2013-08-31 12:12:20 · 2054 阅读 · 0 评论 -
Qt和Zbar的结合使用识别二维码条形码
图像的采集使用Qt5提供的多媒体模块,条形码,二维码等等的识别使用的Zbar。摄像头用的地摊货,晚上在灯光下的效果还行原创 2013-09-26 22:21:53 · 9762 阅读 · 15 评论 -
二维码生成
使用了qrencode生成二维码原创 2013-09-28 22:48:41 · 2489 阅读 · 4 评论 -
Qt关闭窗体自动释放资源
其实很简单只要设置一下属性就行setAttribute(Qt::WA_DeleteOnClose)原创 2013-11-30 18:56:23 · 5402 阅读 · 0 评论 -
使用setmask实现不规则窗体
setmask为调用它的空间添加一个遮罩,在这个遮罩范围之外的都没有显示,但是窗体大小不会变化。#ifndef SHAPEWIDGET_H#define SHAPEWIDGET_H#include #include #include #include #include class ShapeWidget : public QWidget{ Q_OBJECTpubl原创 2013-11-30 20:42:30 · 7750 阅读 · 0 评论 -
Qt中UTF-8转Unicode
#include #include #include #include int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); // const std::string str = "汉字"; const QString str = "汉字"; std::cout << st原创 2013-12-02 09:09:59 · 10695 阅读 · 1 评论 -
Qt中unicode转utf-8
最经在研究AT指令接受短信,短信是unicode编码,接受后需要根据系统的编码方案进行相关的转码比如接受到了一串字符4F60597D,它是“你好”的unicode编码,一个unicode编码占两个字节,所有可以使用4个16进制数表示:4F60->你,597D->好。那我们怎么转换了?在QString中存放的是QChar,你可以把她当作ushort来看待。因为Qt本身的编码方案就是unico原创 2013-12-29 19:14:23 · 11929 阅读 · 4 评论 -
移植qt5.3.1到arm
最近刚入手一款开发板(比较低端,刚毕业工作还没一个月,穷屌丝一个)。在学校以前都是用的是Friendly Arm的6410,使用的qt版本是使用的最多的4.7.0版本,入手的板子是4.7.4。qt5出来也有好长的时间了,其中提供了很多的特性,所以这次移植的是qt5的最新版本5.3.1。第一步准备好源码包,这里需要qt的源码包,和tslib包,tslib我使用的是开发板提供的包。设置交叉编译原创 2014-08-04 20:24:48 · 28730 阅读 · 26 评论 -
qt for android
移植想动手试试qml,正好公司有个企业app是苹果的,我穷屌丝,买不起,后台我做的,我知道接口,就来个android的,qml以前只是看过,没有动手做东西。这是个练手的机会。先来几幅图片看看效果这是在我的ZTE红牛手机上运行的效果,android4.3。这个小的app程序使用qml和js,文件操作使用了很少的C++来完成。qml类似与html语言,在写界面时,其可以直白原创 2015-03-08 19:57:25 · 1561 阅读 · 0 评论 -
QML怎么适配不同的设备
前言做嵌入式和移动开发,不同的设备,不同的分辨率需要UI能够适配,这是一个很现实的问题。QML作为Qt中为UI而生的,使用QML一定要解决适配的问题。分辨率现在同一尺寸的屏幕,其分辨率也是不同,在QML中使用 anchors 进行相对的布局时,其是以像素为单位。现在有一个概念,叫做每英寸像素数目。当设备的PPI不同时,控件的大小不同,这可能导致,如果设计是在一个尺寸小PPI低的屏幕上设计,将程序放到原创 2015-03-10 20:59:03 · 6355 阅读 · 2 评论 -
在Qt5的QML中使用QZXing识别二维码
前言ZXing库是一个用来识别二维码的库,QZXing是一个基于Qt的Qt wrapper library,在本文我们使用它和qml开发一个android小应用。添加QZXing项目QZXing最常用是作为一个子项目包含在我们的项目中,在我们的项目的pro文件中添加如下的一句:include(./QZXing/QZXing.pri)QZXing和我们的pro文件在同一个目录。qml程序import原创 2015-03-11 18:48:16 · 9496 阅读 · 13 评论 -
qml+QZXing实现实时QRCode识别和给重复造轮子的一些建议
QML这个不说了,qml是qt在Qt4.7推出的qt元对象语言。QZXingQZXing是对ZXing库的一个Qt外包库(Qt wrapper library),是被QRCode只是其中的一种。实现从手机摄像头拿到帧图像和实时显示,使用用了Camera和VideoOutput,开始实现的时候,使用了CameraCapture,其性能不能忍受。然后我希望可以直接从VideoOutput中取出图片。原创 2015-04-26 21:01:02 · 4669 阅读 · 5 评论 -
Qt多线程编程续集
项目需要,又开始搞qt的多线程编程。 QThread类并不是代表一个新的线程,而是QT提供的一个接口,用于控制一个子线程。每个QThread的实例就代表着对一个新线程的一个控制类。所以重写run函数,在我看来是很不恰当的,我讲的都是继承QObject类再使用moveToThread函数。 使用多线程就是希望有些工作能够分配给其他的线原创 2013-02-20 10:53:48 · 1407 阅读 · 3 评论 -
utf8转unicode
最近在做AT指令发送短信,转码成了难题,使用libiconv在pc机上ok,在板子上不行。 所以自己写,第一先要看utf8和unicode之间的关系。 UTF-8编码字符理论上可以最多到6个字节长,然而16位BMP(Basic Multilingual Plane)字符原创 2013-03-06 14:59:17 · 1083 阅读 · 0 评论 -
QTimeLine
Qt动画效果的幕后英雄:QTimeLine”其实动画的本质就是在每一定时间间隔内显示一帧图像,当这个间隔较短的时候人眼就感觉不出来了,觉得看到的是连续的影像。Qt为开发动画效果的人员提供了一个很好的时间控制类QTimeLine.QTimeLine的最简单用法是1 QTimeLine timeline=new QTimeLine(1000);2 timeLine->setFrameR转载 2013-04-18 16:43:22 · 2209 阅读 · 0 评论 -
Qt状态机学习1
一个状态机管理了一个状态的集合以及这些状态之间的过渡,这就形成了一个状态图,一但这个状态图形成了,就可以执行这个状态图。 状态机提供了一种图形的方法来建模一个系统对于外部刺激怎么样反应。 #include #include #include #include #include #include #include //Qt的原创 2013-04-20 09:20:55 · 2249 阅读 · 0 评论 -
Qt状态机学习2
我们在使用状态机时,可能在执行一组状态的过程中跳转到一个新状态执行完任务后还需要跳转到原来执行被打断的地方,Qt的状态机框架为我们提供了QHistoryState类。这个类只要将它加入到这组状态中,它就会记住当然执行到的这组状态中的哪一个。 #include #include #include #include #include #includ原创 2013-04-22 21:10:44 · 2066 阅读 · 0 评论