随笔分类 - Qt 编程
Qt_qwt图形开发
摘要:QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供, 输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等。该工具库基于Qt开发,所以也继承了Qt的跨平台特性。【QWT基类】QwtAbstractScale: 包含刻度尺的所有类的抽象基类;QwtAbstractScaleDraw:绘制刻度尺的抽象..
阅读全文
Qt_自定义菜单
摘要:一、右键菜单右键菜单实现:通过重写contextMenuEvent(QContextMenuEvent *event)事件,QMenu+QAction即可完美实现!重写voidcontextMenuEvent(QContextMenuEvent*event)事件void Form::contextMenuEvent(QContextMenuEvent *event){ //创建菜单、菜单项 QMenu *pop_menu = new QMenu(); QAction *add_images_action = new QAction(this); QAction *add...
阅读全文
Qt_阴影效果
摘要:一、控件阴影效果为子部件添加阴影比较简单,使用如下方式:QGraphicsDropShadowEffect *shadow_effect = new QGraphicsDropShadowEffect(this);shadow_effect->setOffset(-5, 5);shadow_effect->setColor(Qt::gray);shadow_effect->setBlurRadius(8);network_group_box->setGraphicsEffect(shadow_effect); 效果如下:二、窗口阴影效果(代码实现)void DropSh
阅读全文
Qt经典—线程、事件与Qobject
摘要:介绍You’re doing it wrong. — Bradley T. Hughes线程是qt channel里最流行的讨论话题之一。许多人加入了讨论并询问如何解决他们在运行跨线程编程时所遇到的问题。快速检阅一下他们的代码,在发现的问题当中,十之八九遇到得最大问题是他们在某个地方使用了线程,而随后又坠入了并行编程的陷阱。Qt中创建、运行线程的“易用”性、缺乏相关编程尤其是异步网络编程知识或是养成的使用其它工具集的习惯、这些因素和Qt的信号槽架构混合在一起,便经常使得人们自己把自己射倒在了脚下。此外,Qt对线程的支持是把双刃剑:它即使得你在进行Qt多线程编程时感觉十分简单,但同时你又必须对Q
阅读全文
qt +ChartDirector 绘制图表
摘要:自从开发由c#转入Qt后一直寻找一款Qt下的图形控件库,最后ChartDirector控件映入眼球。ChartDirector控件使用方便,快捷,灵活,功能强大,交互性强。在web服务器以及嵌入式应用程序开发中,它是一种非常理想的工具,拥有丰富的图表图形组件库。ChartDirector 是一款商业的图表库,有多种语言的版本,使用它做的图表非常的精细漂亮,提供免费版本,但会出现logo信息。网上有很多关于它的破解方法。圆形图表(饼状图),圆环图,柱形图(条形图),直线图,曲线图,梯级线图,趋势线图,曲线拟合图,线间色图,区域图,散布图(散形图),泡沫图,floating box,box-w..
阅读全文
Qt核心编程___Qt线程
摘要:QT核心编程之Qt线程是本节要介绍的内容,QT核心编程我们要分几个部分来介绍,想参考更多内容,请看末尾的编辑推荐进行详细阅读,先来看本篇内容。Qt对线程提供了支持,它引入了一些基本与平台无关的线程类、线程安全传递事件的方式和全局Qt库互斥量允许你从不同的线程调用Qt的方法。Qt中与线程应用相关的类如表6所示。表6 Qt中与线程相关的类使用线程需要Qt提供相应的线程库的支持,因此,在编译安装Qt时,需要加上线程支持选项。当在Windows操作系统上编译Qt时,线程支持是在一些编译器上的一个选项。在Windows操作系统上编译应用程序时,通过在qconfig.h文件中增加一个选项来解决来解决这个问
阅读全文
Qt核心编程___集合类
摘要:QT核心编程之集合类是本篇要介绍的内容。QT核心编程我们要分几个部分来介绍,想参考更多内容,请看末尾的编辑推荐进行详细阅读,先来看本篇内容。一个集合类是装有多个条目的容器,每个条目是某种数据结构,集合类能执行对容器中的条目的插入、删除及查找等操作。Qt有几个基于值和基于指针的集合类。基于指针的集合类使用指向条目的指针来工作,而基于值的集合类存储着它们条目的拷贝。基于值的集合类类似于STL容器类,能和STL算法和容器一起使用。基于值的集合类说明如表4所示:表4 基于值的集合类表基于指针的集合类说明如表5所示:表5 基于指针的集合类表QMemArray 是一个例外,它既不是基于指针也不是基于值,而
阅读全文
Qt核心编程___Qt模板库
摘要:本文介绍的是QT核心编程之Qt模板库,QT核心编程我们要分几个部分来介绍,想参考更多内容,请看末尾的编辑推荐进行详细阅读,先来看本篇内容。Qt模板库(QT Template Library 简称QTL)是一套提供对象容器的模板。如果你的编译器没有适当的STL(标准模板库)可用,QTL将被代替使用。QTL提供了对象的链表、对象的矢量(动态数组)、从一个类型到另一个类型的映射(或称为字典)和相关的迭代器和算法。一个容器是包含和管理其它对象的一个对象,并且提供迭代器对被包含的对象进行访问。 Qt模板类说明如表2。表2 Qt模板类说明QTL类的命名约定与其他Qt类一致(比如,count()、isEmp
阅读全文
Qt中float类型与QString类型相互转换
摘要:在使用Qt Creator编程时,难免会用到将float类型转换为QString类型的时候下面是我所有的方法:1. 将QString类型转化为float类型,很简单QString data; float num = data.toFloat(); 即可很轻松的实现。2. 但是如何将float类型转化为QString类型呢? 查看API很难发现封装好的转化函数 可以尝试使用下面的代码转化: float num = 1.222; QString data = QString("float is %1").arg(num); 输出结果是:float is ...
阅读全文
linux读取按行读写文本文件
摘要:1.#include <stdio.h>2.#include <unistd.h>3.#include <fcntl.h>4.#include <string.h>5.#include <malloc.h>6.#include <stdlib.h> 7.8.9.typedef struct item_t {10. char *key;11. char *value;12.}ITEM;13.14./*15. *去除字符串右端空格16. */17.char *strtrimr(char *pstr)18.{19. int i;
阅读全文
Qt中丰富的容器类---数组QVector、链表QLinkedList、映射表QMap、哈希表QHash
摘要:在C++里做大型程序时,少不了要与数组、链表等数据结构打交道。就是最简单的字符串也常常让头痛万分,Qt中有QString解决了字符串的头痛,那么其他数组等有没有更简单的解决方案呢?Qt作为一款优秀的类型库,当然不会没考虑这些。Qt提供了大量的“容器类”,专门用于以某种方式存储大量内容,QString其实只是这大量的容器类的一种。我在这里介绍:QVector(数组)、QLinkedList(链表)、QMap(映射表)、QHash(哈希表)QVector,是Qt对所有数组的封装,比如我们想要一个int类型数组,我们原先会写int array[10],我们在Qt里可以写QVector<int&
阅读全文
QT编程技巧.QString和QDateTime之间的相互转换
摘要:1、QDateTime 转换为 QStringQString QDateTime::toString ( Qt::DateFormat format = Qt::TextDate ) constQString strBuffer;QDateTime time;time = QDateTime::currentDateTime();strBuffer = time.toString("yyyy-MM-dd hh:mm:ss");// strBuffer = 2010-07-02 17:35:00QString strBuffer;QDateTime time;time = Q
阅读全文
qt 系统设计对比
摘要:去年年底项目确定统一开发语言和工具,所以新的项目一律qt开发,所以赶紧临时抱佛脚学习qt最先设计的系统框架如下经过一个多月的摸索的学习,主要是在网上找些大神的文章动手自己做,原来的设计改的面目全非,没办法没有美工,只有山寨别人的了,献上效果图基本功能就这些,还不知道能不能满足客户需要以前是分分分学生的命根,考考考老师的法宝现在是改改改老子的**,催催催客户的**总结下:Qt对于像我这样长期以.net混饭吃的程序员,快速切换到c ++是合适的。最起码,自己的编程想法很快就能实现。在这里我还是基本上以c#的思想在写Qt的代码,好多地方知其然不知其所以然,这个毛病还是没改善。。。Qt在开发桌面客户端
阅读全文
Qt中使用全局变量的实例
摘要:在Qt中使用全局变量的实例1.首先需要在一个头文件中对全局了变量使用exern方法进行定义。//g.h extern char *testStr;2.只能在cpp文件中对其是实例化,并且实例化只能在函数的外部进行。建议在包含main函数的cpp文件中进行实例化,这样可以确保在其他文件中使用时,它已经被实例化。//a.h #include "g.h" char *testStr="hello world"; void main() { cout<<testStr<<endl; testStr="hello China&qu
阅读全文
qt 常见问题记录
摘要:0、QT4 编译错误 error: collect2: ld returned 1 exit statuserror: collect2: ld returned 1 exit status。原因:1)、是有程序在后台运行2)、是slots里定义了函数 ,但是没有写函数体3)、是类里定义了函数,但没有写函数体,包括构造函数和析构函数。1 QWidget类有什么用途?在Qt应用程序中,QWidget用做工作空间.它是底层窗口,在其上可以放置其他对象,如按钮等.2 a.setMainWidget(&mainwindow);语句的意义是什么?这段代码告诉Qt,说明mainwindow对象是程
阅读全文
Qt 一步一步实现dll调用(附源码)
摘要:前言:从上个月底因为新项目统一平台需要用Qt开发,就开始研究Qt,但是一直感觉没有入门,不知道为什么,很多功能实现了,但是知其然不知其所以然,就像现在设计的项目使用插件进行开发,做软件开发大体都知道什么事插件式开发,以前c#也用过,但是Qt插件开发还是第一次,百度了很久终于实现,这里记录下!这里不讲原理直接讲过程,高手绕行。。。第一部分建立插件程序实现2个功能(1)创建一个加法函数供主程序进行动态调用(2)创建一个查询页面供主程序进行动态调用第一步创建插件程序打开文件菜单-》新建文件或项目-》选择other project -》C++库如图点击Choose进入如图选择共享库-》输入名称-》选择
阅读全文
使用Qt编写模块化插件式应用程序
摘要:动态链接库技术使软件工程师们兽血沸腾,它使得应用系统(程序)可以以二进制模块的形式灵活地组建起来。比起源码级别的模块化,二进制级别的模块划分使得各模块更加独立,各模块可以分别编译和链接,模块的升级不会引起其它模块和主程序的重新编译,这点对于大系统的构建来说更加实用。另一方面,对于商业目的明显的企业,各模块可以独立设置访问权限,开发成员只能访问自己负责的模块,其它模块是不能也不给看到的,这样减少了整个系统泄漏技术的风险。一、动态链接库技术概况动态链接库技术用得很多。事实上,整个Windows就是由一个个动态链接库(DLL)构建起来的,不管是系统内核,或是系统调用的API封装,还是通用工具(如控制
阅读全文
Qt类型转换
摘要:1、char * 与 const char *的转换char *ch1="hello11"; const char *ch2="hello22"; ch2 = ch1;//不报错,但有警告 ch1 = (char *)ch2; 2、char 与 QString的转换char 转换为 QString 其实方法有很多中,我用的是: char a='b'; QString str; str=QString(a);QString 转换为 char 方法也有很多种 QString str="abc"; char *ch; QBy
阅读全文
Qt中如何添加ICON图标
摘要:【问题描述】如图1所示,直接编译的QT程序,没有漂亮的外观,如何给程序添加一个漂亮的图标呢?图1 默认QT程序图标 【步骤】 1 下载图标素材,以png格式素材为例说明。 图2 图标素材(logo.png) 2 将图标素材转换为ico格式。 3 利用记事本新建一个名为logo.rc的文件,logo.ico为转换后的图标名称,内容如下: IDI_ICON1 ICON DISCARDABLE "logo.ico" 4 在工程文件夹中新建一个images目录,将logo.ico、logo.rc放入文件夹中。 5 打开QT工程,将logo.ico、logo.rc添加进工程。 6 在
阅读全文
QT 跨平台的C++应用和UI开发库
摘要:Qt 是一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。 基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 具有下列优点:优良的跨平台特性:Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (O..
阅读全文