Qt的第三方qwt控件中提供了compass,如下图所示:
现在要实现如下效果:
实现代码如下:
QwtCompass *compass = new QwtCompass(this); //新建一个compass
compass->setLineWidth(4);
compass->setScaleComponents(
QwtAbstractScaleDraw::Ticks | QwtAbstractScaleDraw::Labels );
compass->setScaleTicks(0, 0, 3); //设置表盘的分度符
compass->setNeedle(new QwtCompassMagnetNeedle(
QwtCompassMagnetNeedle::TriangleStyle, Qt::white, Qt::red)); //这句实现箭头效果
compass->setValue(41.0); //41表示指南针转过41度,效果如上图。
在头文件中需包含qwt-6.0.1的一些头文件,否则编译会出错。
#include <qwt_compass.h>
#include <qwt_compass_rose.h>
#include <qwt_dial_needle.h>