
1、QChart图表在UI设计器里使用图表以及相应属性的学习QChart比较特殊在安装Qt Creator要选择QChart模块来安装否则的话写程序的话是找不到QChart模块。图表示例新建项目-修改界面大小800 480把模块添加之后要构建ctrlb一下。类引入那怎么在UI设计器里面添加QChart呢但是UI里面没有这个控件啊那我们怎么使用图表呢因为UI里面的图标是空的没有内容他只是一个视图所以我们要给他创建一个图表。以下内容是整个的Demo我们每行代码都有注释为了方便我们来理解它在不明白的方法里我们要经常去借助帮助文档或者是ctrl点击进入它的方法里面找到相应都有什么参数。//widget.cpp #include widget.h #include ui_widget.h #include QValueAxis //引入坐标轴类 #include QSplineSeries //引入曲线类 //#include QLineSeries //引入折线 Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui-setupUi(this); //1.创建一个图表视图因为要把图表放到图表视图里面去但是我们已经有了(就是提升类那个操作)就不用去创建了 假设没有像下面这么写 //QChartView *chartView new QChartView(); //2.创建一个图表 QChart *chart new QChart(); //3.创建坐标轴 QValueAxis *ValueAxisX new QValueAxis(); QValueAxis *ValueAxisY new QValueAxis(); //4.设置坐标轴的范围 ValueAxisX-setRange(0, 5000); ValueAxisY-setRange(0, 100); //5.设置坐标轴的标题和显示的格式 ValueAxisX-setTitleText(时间/ms); ValueAxisY-setTitleText(温度/度); ValueAxisX-setLabelFormat(%d); ValueAxisY-setLabelFormat(%d); //设置XY 显示的格子 ValueAxisX-setTickCount(11); ValueAxisY-setTickCount(11); //6.图表添加坐标轴 chart-createDefaultAxes();//就是说图表有坐标轴会删除再添加我们创建的坐标轴也可以不写 chart-addAxis(ValueAxisX, Qt::AlignBottom); chart-addAxis(ValueAxisY, Qt::AlignLeft); //7.设置图表的标题 以及图例显示是否需要 chart-setTitle(温度与时间曲线); chart-legend()-setVisible(false);//图例显示不可见true用来区分多个曲线我们可以设置图例的标题 //8.创建曲线对象添加它的点设置曲线的颜色 QSplineSeries *splineSeries new QSplineSeries(); splineSeries-append(0, 50); splineSeries-append(1000, 60); splineSeries-append(2000, 80); splineSeries-append(3000, 50); splineSeries-append(4000, 30); splineSeries-append(5000, 80); QPen pen(QColor(0xff5566)); splineSeries-setPen(pen); //9.视图添加曲线 chart-addSeries(splineSeries); //10.!!!将曲线的数据与坐标轴相连注意这个要在图表添加曲线之后 //附属到坐标轴上面去 splineSeries-attachAxis(ValueAxisX); splineSeries-attachAxis(ValueAxisY); //11.将图表放置于图表视图里面 ui-chartView-setChart(chart); } Widget::~Widget() { delete ui; }最后执行的效果是2、QPropertyAnimation属性动画介绍属性动画的使用1几何动画2颜色动画3不透明动画新建项目将动画类的头文件添加进来因为我们有三个对象所以要生成三个才行。我们用三个按钮来触发三个动画文本分别设置为几何动画、颜色动画、不透明度动画再将他们垂直布局。2.1 几何动画动画师作用于一个物体上的程序上理解为一个对象给他一个Widget并将它的背景颜色设置为红色。有了对象之后我们要实例化这里我们执行一下就能实现点击几何动画按钮红色Widget从左上角滑动到右下角并且渐渐变大再次点击又会再次从左上角来到右下角渐渐变大执行效果点击效果假设我们想设置这个动画的循环周期、缓和曲线、某个时刻的位置。2.2 颜色动画我们COPY红色的Widget修改它的对象名字为colorWidget并修改它的样式表背景颜色为蓝色设置完之后我们ctrlb构建一下。我们不能直接设置它的颜色属性类似这样要通过一个对象间接设置它的颜色因为颜色的属性并不是Widget里面所拥有的。我们用另外一个类来设置(#include QGraphicsColorizeEffect)我们给它一个对象2.3 不透明度动画与颜色动画一样的因为Widget的不透明度不是直接在物体上的而是通过另外一个对象来设置的。我们再COPY一份Widget修改对象的名字为opacityWidget并修改它的样式表背景颜色为yellow。Ctrlb构建一下。引入头文件#include QGraphicsOpacityEffect它应用在哪里颜色的动画可以做一些呼吸灯不透明度可以做动画的切换效果或者是按钮按下的颜色。3、Q_PROPERTY宏简介非常有用。新建一个项目然后再新建一个类这时我们执行会报错因为只是声明了没有定义这个函数。我们定义一下然后我们加个打印我们再执行一下当然我们将这里注释掉也是可以的。我们给Rich的界面设置的好一点界面高度设为80拖进来一个Label将这个对象的名字改为moneyLabel属性里面修改它的大小25粗体文本改为0对齐水平居中然后点击Widget进行水平布局。效果如下然后我们构建一下Ctrlb。接下来我们再加一个接口富人不可能挣500万。我们转到它的定义函数这里还有另外一种方法4、自定义属性动画关键点就是要 会 宏Q_PROPERTY。我们新建一个项目将上一讲的项目的rich.cpp rich.h rich.ui添加到新建项目的根目录里面。好了我们开始启动动画了。