202009-30 QT实现简单时钟效果 本文实例为大家分享了QT实现简单时钟效果的具体代码,供大家参考,具体内容如下先上效果图:预备知识:一.钟表实现原理设置定时器timer,每隔1000毫秒(即1s)发送timeout()信号到槽函数update(),重绘事件函数paintEvent(QPaintEventevent)二.钟表的绘制方法拆分钟表:表盘数字刻度线指针paintEvent(QPaintEventevent)1.设置定时器,时间间隔为1000毫秒,并且将定时器时间与update函数关联为信号和槽,定时器每隔1秒发送一个... 继续阅读 >
202009-27 如何在 ubuntu linux 上配置 go 语言的 qt 开发环境 go语言是开发效率极高、运行速度也接近C程序的现代编程语言,qt是跨平台的优秀gui库,二者结合起来工作表现非常优秀。本文讲的有两个事情,第一个是安装go语言的qt绑定包,第二个是安装go语言的集成开发环境。安装github.com/therecipe/qt包本段介绍的是如何安装和配置github.com/therecipe/qt开发包,这是一个非常优秀的qt库的go语言绑定,它非常强大,完美支持QT的信号槽机制,而且它的API完全模仿C++,所以你可以直接参考官方的... 继续阅读 >
202009-25 Qt 实现钢笔画线效果示例及详细原理 前言上一篇文章:Qt实现画线笔锋效果详细原理,根据这篇介绍的实现笔锋效果的原理,我们很容易实现另外一种笔效:钢笔。所谓的钢笔笔效,就是真实还原钢笔书写出来的线条效果,其特征就是:根据笔的绘制速度而线条的宽度会逐渐变化,写得越快,线条越细,并且在收笔时带有笔锋效果。那么,在上一篇文章的基础上,稍微修改一下,就可以实现这个效果,看下效果图:实现原理从上一篇文章我们知道,绘制的曲线是通过每两个点形成一条... 继续阅读 >
202009-25 Qt 实现画线笔锋效果详细原理及示例代码 前言之前写过一篇文章介绍Qt中绘制平滑曲线的两种方式,文章在这里。这篇文章详细介绍了绘制的原理和实现方式,那么,如果要在此曲线上实现笔锋效果怎么做呢?所谓的笔锋效果,就是钢笔书写抬笔时的笔尖,也就是说,绘制曲线抬笔时形成一个笔尖的效果。话不多说,直接来看效果:动画效果如下:实现原理要实现该效果,需要完成以下几个关键步骤:1.每两个点形成一个贝塞尔曲线path进行绘制2.最新的一条path绘制细线(笔锋最细处的宽... 继续阅读 >
202009-25 Qt 鼠标/触屏绘制平滑曲线(支持矢量/非矢量方式) 前言Qt通过鼠标或者触屏,实时绘制平滑曲线,通常有两种方式实现:矢量绘图和非矢量绘图,这两种画线方式从实现上有些不同,其原理也不太一样,稍后会做详细介绍。而鼠标或者触屏画线也不大一样,通常如果只实现鼠标画线的话,那么只需要重新实现鼠标事件即可(mousePressEvent、mouseMoveEvent、mouseReleaseEvent),而要在触控屏上画线,如果需要支持多点画线的话,就必须处理QTouchEvent事件才行,但是如果触屏上只支持单点画线... 继续阅读 >
202009-25 浅谈Qt QGraphics体系及刷新机制介绍 概述Qt的三大体系:QWidget、QGraphics、Quick,其中QGraphics图形框架算是这三个中比较高级的一种用法了,并且使用起来相比另外两个体系会更加的复杂一些,不过它能实现的功能却非常强大,主要体现在对图元的管理,它独特的刷新机制可以在众多的图元中都能够很好的管理,保证整个交互的流畅度。而这里要描述的就是QGraphics体系的刷新机制以及该体系中相关元素的使用方式及特点。QGraphics体系的三大元素QGraphics体系中最重要的... 继续阅读 >
202009-25 Qt程序中调用C#编写的dll(推荐) 1、打开VisualStudio,新建一个C#的ClassLibrary项目(这里选择的是.NetFramework4),项目名为CSharpDll。2、由于默认没有引入Forms等UI库,先在reference中添加引用System.Windows.Forms以便可以在测试中使用MessageBox等。3、最终C#编写的dll的源代码如下图所示,命名空间为CSharpDll,公共类为CSharpClass。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Form... 继续阅读 >
202009-24 Qt基础开发之Qt文件操作类QFile读写文件的详细方法与实例及QDataStream的使用方法 Qt文件操作类QFile简介Qt中使用QFile类来操作文件的输入/输出。继承至QIODevice,QIODevice类是输入/输出设备的基类,为设备提供了公共实现和抽象接口用于读写块数据。QIODevice又继承至QObject。1、使用QFile类打开文件QFile的构造函数QFile(constQString&name)//传入一个文件路径构造完成后,并没有打开文件,需要使用QFile::open函数来打开文件[virtual]boolQFile::open(OpenModemode);/**OpenModemode打开方式,是一个... 继续阅读 >
202009-24 Qt GUI图形图像开发之QT表格控件QTableView详细使用方法与实例 QT表格控件QTableView简介表格视图控件QTableView,需要和QStandardItemModel,配套使用,这套框架是基于MVC设计模式设计的,M(Model)是QStandardItemModel数据模型,不能单独显示出来。V(view)是指QTableView视图,要来显示数据模型,C(controllor)控制在Qt中被弱化,与View合并到一起。QTableView简单使用实例QStandardItmeModel表格的数据模型,那么这个模型需要填上每一行每一列的数据,就像execl表格一样。wi... 继续阅读 >
202009-24 Qt GUI图形图像开发之QT表格控件QTableView详细使用方法与实例 QT表格控件QTableView简介表格视图控件QTableView,需要和QStandardItemModel,配套使用,这套框架是基于MVC设计模式设计的,M(Model)是QStandardItemModel数据模型,不能单独显示出来。V(view)是指QTableView视图,要来显示数据模型,C(controllor)控制在Qt中被弱化,与View合并到一起。QTableView简单使用实例QStandardItmeModel表格的数据模型,那么这个模型需要填上每一行每一列的数据,就像execl表格一样。wi... 继续阅读 >
202009-24 Qt GUI图形图像开发之Qt表格控件QTableView简单使用方法及QTableView与QTableWidget区别 QTableView是Qt中用来把数据集以表格形式提供给用户的一个控件QTableView类实现表格视图,QTableView的数据由继承QAbstractItemModel的子类models来提供#include<QStandardItemModel>QStandardItemModel*model=newQStandardItemModel();ui->tableView->setModel(model);一、添加表头:model->setColumnCount(2);model->setHeaderData(0,Qt::Horizontal,"卡号");model->setHeaderData(1,Qt::Horizontal,"姓名");二、... 继续阅读 >
202009-24 Qt GUI图形图像开发之QT表格控件QTableView,QTableWidget复杂表头(多行表头) 及冻结、固定特定的行的详细方法与实例 我们在开发过程中对于表格使用频率还是挺高的,使用QT框架开发时候我们使用QTableView或者QTableWidget创建表格。其中表格分为表格头与表格体:对于简单地表格,我们可以设置表头来满足我们的要求(当然也可以隐藏表头),不过对于定制化的表头,我们能做的不是特别多。特别是对于复杂的表头,使用自带的表头,无论怎么设置都不太可能达到需求。例如我最近接到的一个项目,需求是:我们分析一下这个表格有什么特点:1.表头不是简... 继续阅读 >
202009-24 Qt图形图像开发之QT滚动区控件(滚动条)QScrollArea的详细方法用法图解与实例 QT滚动区控件(滚动条控件)QScrollArea简介滚动区域控件QScrollArea用于显示一个画面中的子部件的内容。如果部件超过画面的大小,视图可以提供滚动条,这样就可以看到部件的整个区域。QScrollArea属于控件容器类,可以直接在ui中拖出来。对于QScrollArea,最难搞懂的就是:如何控制它,才能让它在我们想要出现滚动条的时候出现滚动条。我们拖入一个QScrollArea,再向他里面拖入4个button,观察信息如下:可以发现,4个button并不是... 继续阅读 >
202009-24 Qt图形图像开发之曲线图表模块QChart库一个chart中显示两条曲线详细方法与实例 首先要了解QChartView、QChart、QLineSeries、QValueAxis的实体之间的关系,例如一个QChartView中可以包含几个QValueAxis?这些可参考Qt图形图像开发曲线图表模块QChart库基本用法、各个类之间的关系说明每个chart可以包含多个QLineSeries数据系列,每个QLineSeries数据系列又包含了2个QValueAxis数值轴或QDateTimeAxis时间轴。那么这个chart中的多个数据系列,一起显示在同一个chart中,会是什么情形?新建ui工程,并添加MainWin... 继续阅读 >
202009-24 Qt图形图像开发之曲线图表模块QChart库坐标轴和数据不对应、密集的散点图无法显示问题解决方法 QChart坐标轴和数据不对应问题描述:lineseries->append(4,10);lineseries->append(5,8);Chart->addSeries(lineseries);//将series添加至图表中axisX->setRange(0,15);//设置X的显示范围axisY->setRange(-20,20);lineChart->setAxisX(axisX);//把轴添加到图表中lineChart->setAxisY(axisY);结果发现,数据系列中的点(4,10)在坐标系中的坐标不是(4,10)原因在于,轴和数据系列没有连接。一个图表QChart中可以有多个数... 继续阅读 >
202009-24 Qt图形图像开发曲线图表模块QChart库缩放/平移详细方法与实例 1、使用QChartView来缩放(1)用鼠标框选一个矩形,把图放大到这个矩形QChartView::setRubberBand(QChartView::RectangleRubberBand);//XY方向同时放大到鼠标画出的矩形大小(也可以设置为只放大X轴或Y轴)(2)setRubberBand函数同时也能使鼠标右键,具备缩小图的功能。2、使用Qchart来平移和缩放QChart::scroll(-10,5);//整体平移(-10,5),两个参数分别为Δx和ΔyQChart::zoomIn(x,y,width,height);//缩放到指定的矩形QChart::... 继续阅读 >