
QT
HeroKern
欢迎关注嵌入式开发公众号,定期更新技术文章。
-
原创 QT开发之FTP
上篇文章讲到了HTTP协议,这篇文章我们使用FTP协议来登录我的个人网站,在稳重贴出的代码中,这个服务器是随便填的,测试是登录成功的,有一个BUG,就是必须点击两次连接按钮才能够登录成功,可以下载文件,但是没有实现上传文件,大家可以自行去实现,我写博客的目的是为了备忘,在脑海中有一个印象,当在我的实际项目中需要用到这一块知识的时候我在来深入研究,现在只需要有一个大致的印象,方便以后的开发.有网友反2016-12-10 13:46:123620
0
-
转载 QT程序打包成EXE
博文出自:http://blog.csdn.net/qq_32483145/article/details/51169518 在这里我将提供一个将qt生成的exe文件打包成在任何电脑都可以运行的exe文件的方法。 PS:为什么需要打包?在我们经过qt编译之后的软件默认都是动态编译的。即运行的时候qt会为软件调用一些必需的文件, 而这些必须的文件是安装过qt的电脑上才有的。这些文件2016-11-25 12:43:482104
0
-
原创 QT开发之XML(SAX接口)
上篇文章提到了DOM接口,这篇文章我们来实践SAX接口.SAX为XML解析器提供了一个基于事件的标准接口.在Qt中支持SAX2,但是不支持Java接口中的SAX1.SAX接口是一个驱动机制,Qt中有一个类是QXmlDefaultHandler,它提供了startElement事件处理函数,character()事件处理函数,endElement(),fatalError事件处理函数,更多的事件可以2016-12-05 10:36:051549
0
-
原创 QT中鼠标事件解析
以前在Linux下写过关于鼠标的应用程序,通过read系统调用去读取/dev/input/mice设备节点数据,然后做一些数据相关的处理,然后显示鼠标光标等,这里就牵扯到一些图片相关的算法了,比如图像的缩放,合并。自从开始学C++和QT后才发现以前真的是瞎折腾,什么自己造轮子。QT类已经帮你做好这一切了,只需要去调用类就行。 QT中关于鼠标的类是QMouseEvent,我们在设计界面上添加一个T2016-11-25 21:52:573485
0
-
原创 Qt开发之HTTP
这篇文章将给大家演示QT网络编程在HTTP中的应用,用来爬取网页内容或者下载文件.我用过在三种语言是来爬取网页内容,用C语言我写了100行代码,用C++写10行代码,用Python写了两行代码.大家从这个可以看出编程的效率,但是同时带来一个问题,程序的运行效率是C>--C++>--Python .HTTP在C++中有一个QtNetwork类,最常用的两个函数是QNetworkAccessMana2016-12-09 14:04:351610
0
-
原创 QT开发之gif动画显示
上篇文章我们调到了QSound音频,这篇文章我们讲解QMovie类来显示gif文件.QMovie有三种运行状态,QMovie::NotRunning(),QMovie::Paused(),QMovie::Running().新建一个Gui应用项目,名称为myMovie,然后添加下面界面效果的界面(在文章中最后),main.cpp默认mainwindow.h#ifndef MAINWINDOW_H2016-12-08 16:56:173667
0
-
原创 QT开发之音频
我们先使用QSound和QMovie类来分别做音频和动画学习,在下篇文章我们将采用Phonon多媒体框架.先做好前期准备好,在Windos下开发的就可以跳过这一步了,在Linux环境下开发的就的执行下面操作.需要安装nas类.不然运行程序QSound::play()会没有声音的.sudo apt-get install nas nas-bin新建QT Gui应用,工程名为mySound,类默认.m2016-12-08 14:27:573561
0
-
原创 QT开发之XML(Stream接口)
从Qt 4.3开始引用了两个新的类来读取和写入XML文档:QXmlStreamReader和QXmlStreamWriter. 这个比SAX框架更简单,操作也更加方便.一些操作事件类型和一去看帮助文档.新建控制台应用 ,名称为myXmlStream .在myXmlStream.pro中添加 QT +=xml main.cpp#include #include #include #in2016-12-07 21:01:351669
0
-
原创 QT中进程之间通信
Linux中进程之间通信有,pipe,signal,消息队列,共享内存,信号量,socket.Qt中提供的进程间通信有如下几种:1.TCP/IP跨平台的QNetwork提供了众多的类来实现网络编程.比如QNetworkAccessManger,Qftp等来使用指定的应用程序协议.2.共享内存在Linux中也有这个通信方式,通信方式是非常常用额,也比较简单.本文用共享内存来举例.3.D-BusQtD2016-12-14 13:47:525116
1
-
原创 Qt程序打包发布方法(使用官方提供的windeployqt工具)
Qt程序打包发布方法(使用官方提供的windeployqt工具)转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:...2017-02-24 18:47:114568
1
-
转载 Qt 程序打包发布总结
转载自:http://blog.csdn.net/liuyez123/article/details/504626371. 概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行。编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装文件。QT开发的程序发布的时候经常采用两种方式:l 静态编译,可生成单一的可执行2017-02-24 23:30:303644
2
-
转载 qt5搭建libcurl环境
1.安装QT5的注意事项安装qt5说起来非常简单,但是经常出错,有时候是装上之后运行QT creator的时候出现错误。下面介绍一个我测试过没有问题的安装方法: 首先是qt5建议安装qt5.5.0等公认的稳定性比较好的版本,不要随便找个版本就安装。推荐一个下载地址http://mirror.bit.edu.cn/qtproject/archive/qt/5.5/5.5.0/打开这个地址,看一看到里...2018-06-30 14:39:092778
0
-
原创 QT项目之键盘控制光标移动
今天学习了QT类中的键盘和鼠标事件,就写了一个很简单的应用程序来做测试。突然发现用C++开发项目效率好高,什么都可以调用类,或者去继承某一个类,添加自己的函数就行。以前做图形界面和鼠标开发的时候,全是自己造轮子,用C语言开发,自己去读取/dev/input/event*接口,然后去处理获取到的input数据,那时候感觉好复杂,现在用QT直接一个类就搞定,界面效果如下:屏幕中间的指针只能在坐标轴上移2016-11-24 23:53:266877
5
-
原创 QT项目之寄存器查看器
博主刚刚接触C++和QT,由于刚刚入门,就写了一个非常小的项目来实战一下,还是那句话,“麻雀虽小,五脹俱全”,了解一个项目的框架之后,写下一个项目也会得心应手。做嵌入式开发的朋友们经常和会去配置寄存器,扣字节,对位操作非常多,但是呢?人们最熟悉的还是十进制数,这里就可以借助我开发的寄存器查看器工具来帮助我们去设置某位。效果如下:从图中我们可以看到,我们可以输入十进制数或者十六进制数,然后在下面可以2016-11-23 22:56:262448
0
-
原创 Qt开发之webkit(编写网页浏览器)
QtWebKit提供了一个Web浏览器引擎,可以很方便的把万维网中的内容嵌套到Qt应用程序中.比如HTML,CSS,JS等到这里Qt基础基本过了一遍,接下来就准备开发几个小项目来实践一下.新建Qt Gui应用程序,类名保持默认.在工程文件中添加 QT += webkit.webkit.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include2016-12-14 23:46:2412099
0
-
原创 QT开发之IP协议
IP协议就不讲了,以前在Linux网络编程这一块讲的非常清楚了,这篇文章只是一个演示怎么在QT中去使用库函数来运用IP相关的操作.新建Qt Gui应用项目,名称为myIP,其他类保持默认,在工程文件中添加QT += networkmian.cpp#include #include "mainwindow.h"int main(int argc, char *argv[]){ Q2016-12-10 15:14:501555
0
-
原创 QT开发之TCP协议
这篇文章用一个简单的例子实现客户端和服务端之间的通信,用C语言写网络编程相关的代码相对复杂了,还是C++的面向对象思想,对类的封装和继承做的很好.client.h#ifndef CLIENT_H#define CLIENT_H#include #include class QTcpSocket;namespace Ui {class Client;}class Client2016-12-10 21:44:221741
1
-
原创 QT开发之TCP(传输文件)
就不新建工程了,还是原来的味道,注意在工程文件中添加QT += network client.h #ifndef CLIENT_H#define CLIENT_H#include <QDialog>#include <QAbstractSocket>class QTcpSocket;class QFile;namespa...2016-12-11 20:06:443902
4
-
原创 QT入门之 Hello World
上篇文章我讲解了怎么去安装QT开发环境,下面我们讲解怎么去新建一个工程,工程由哪些结构组成。这里我们回顾一些知识点。我的开发坏境是Ubuntu16.04 TLS ,我们用到的安装包截图如下,一个是QT Creater,一个是QTLibary。 QTCreater是一个集成开发环境,我们不用也可以,直接命令行写代码,但是很多东西不是很方便,建议大家一并安装上。QT Assistant (QT助2016-11-12 17:58:477514
0
-
原创 QT开发之多线程
在Linux中我们经常使用多线程编程,同时就会提出同步和异步操作.像原子变量,信号量,阻塞,自旋锁,互斥所等,在Qt中也有类似的概念,但是在我的开发中用的不是很多,下面列举一下多线程编程的基础.新建一个Gui应用项目,代码注释的非常详细.创建线程后,启动线程默认是run函数,除非有特殊指定dialog.h#ifndef DIALOG_H#define DIALOG_H#include #i2016-12-14 22:45:361643
0
-
原创 QT中的event事件解析
在QT中使用一个对象表示一个事件,继承自QEvent类。需要说明的是事件与信号是不相同的。在每个程序的main()函数的最开始都会调用QApplication类的exec()函数,它会使Qt应用程序进入事件循环,这样就可以使应用程序在运行时候接受发生的各种事件,一旦有事件发生,Qt便会创建一个相应的QEvent子类对象的事件来表示,然后传递给相应的QObject对象或其子对象。下面我们创建一个Qt2016-11-25 21:39:5814725
4
-
原创 QT项目中添加资源文件
工程文件的后缀是pro,资源文件的后缀是qrc。下面往一个建好的工程中添加资源文件。假设我的工程目录在/home/home/linux/QT/project/snake目录下面,然后在该工程目录下面创建一个img文件夹用来存放我们的资源,比如文件,图片等。一、点击新建文件或工程选择添加QT资源文件,名称随便填写,我这里填写test,路径存放在工程路径下面。其他的填写默认即可。建立好资源后会默认进入2016-11-25 22:35:3331298
0
-
原创 QT项目开发之数据库基础
Qt中的QtSql模块提供了对数据库的支持,该模块可以分为三大类别:用户接口层、SQL接口层、驱动层. 其中驱动层是具体数据和SQL接口层之间提供了底层的桥梁;SQL接口层提供了对数据库的访问,其中QSqlDatabase类用来创建链接,QSqlQuery类可以使用SQL语句实现与数据库的交互.讲在多的理论还不如真刀真抢的来实战,下面我配合代码来讲解QT对数据库的基本操作.新建空的Qt项目,项目名2016-12-03 22:09:003072
1
-
原创 QT项目开发之数据库模型
SQL常用的模型有三种,查询模型,关系表格模型,表格模型,在这里我只讲查询模型,并用一个段代码来加之说明.QSqlQueryModel提供了一个基于SQL查询的只读模型,我们创建一个新的工程,选择新建GUI项目,项目名称sqlModel,类名MainWindow,基类选择QMainWindow.完成后在sqlModel.pro中添加QT+=sql. 在往项目中添加C++头文件,名称为concen2016-12-04 15:28:351936
0
-
原创 QT开发之QProcess进程运行外部程序
Qt提供了一个QProcess类用于启动外部程序并与之通信,启动一个新的进程的操作非常简单,只需要将待启动的程序名称和启动参数传递给start()函数即可. 当调用start()函数后,myProcess进程立即进入启动状态,但程序ls尚未被调用,不能读写标准输入输出设备.当进程完成启动后就进入"运行状态"并向外发出started()信号.在输入输出方面,QProcess将一个进程看做一个流类型的2016-12-12 17:07:0911636
3
-
原创 QT开发之XML(DOM接口)
XML是类似HTML的WEB前端标识符语言,这个比较简单,大家可以去学习一下,HTML+CSS+JS可以做一个非常不错的网站,我个人网站就是用这个框架开发的,也可以用JSP或PHP去开发,这里我们的重点是QT.这个下面我直接上代码就行,相信大家能够看懂.QT提供了三种解析方法:SAX(Simple API XML), DOM(Document Object Model), Pull. 这篇文章2016-12-04 23:55:431554
0
-
原创 QT封装exe和安装包详解
1. 前言Qt 是 1991 年由奇趣科技开发的跨平台 C++图形用户界面应用程序开发框架。它既可以开发 GUI 程式,也可用于开发非 GUI 程式,比如控制台工具和服务器。Qt 是面向对象的框架。相比较Microsoft的mfc框架,我推荐使用Qt平台。2 搭建Hello工程2.1 下载QT和软件库在早期qt版本中,需要单独安装Qt Creator、qt-opensource、m...2018-09-29 13:52:209705
0