Qwt笔记(七)之QwtKnob的简单使用

104 篇文章 127 订阅

一.前言
文章只是楼主学习过程的记录,不能面面俱到,也不能每个点都讲到,不喜勿喷

二.QwtKnob是啥??
文档原文:
The QwtKnob widget imitates look and behavior of a volume knob on a radio. It looks similar to QDial - not to QwtDial.
QwtKnob模仿收音机音量旋钮的外观和行为。它看起来像QDial ,但不是QwtDial。

三.使用举例
1.拖动一个QwtKnob
在这里插入图片描述
2.常规属性的设置

    // 设置旋钮的直径,如无特殊需要可使用默认值
    ui->Knob->setKnobWidth(400);

    // 设置刻度能显示的角度,默认是270
    ui->Knob->setTotalAngle(270.0);

    // 设置圆环阴影风格
    ui->Knob->setKnobStyle(QwtKnob::KnobStyle::Sunken);

    // 设置圆环宽度
    ui->Knob->setBorderWidth(2);

    // 设置旋钮的标记风格,这里设置为三角形
    ui->Knob->setMarkerStyle(QwtKnob::MarkerStyle::Triangle);

    // 设置旋钮标记块的大小
    ui->Knob->setMarkerSize(12);

在这里插入图片描述
3.设置起始值位置
这个主要是通过QwtRoundScaleDraw类设置的

    QwtRoundScaleDraw *roundScaleDraw = new QwtRoundScaleDraw();
    roundScaleDraw->setAngleRange(-135,135);

关于setAngleRange,文档是这么解释的
Adjust the baseline circle segment for round scales.
调整圆尺度的基线圆段
The baseline will be drawn from min(angle1,angle2) to max(angle1, angle2). The default setting is [ -135, 135 ]. An angle of 0 degrees corresponds to the 12 o’clock position, and positive angles count in a clockwise direction.
基线将从min(angle1,angle2)绘制到max(angle1, angle2)。默认设置为[- 135,135]。0度的角对应于12点钟方向的位置,正角按顺时针方向计算。

楼主的理解,这个函数是用来设置圆环的多大范围可以旋转,而第一个参数设置的0所在的位置,第二个参数设置的是最大值的位置,变化的方向是顺时针方向(有错请指出)
3.1

    QwtRoundScaleDraw *roundScaleDraw = new QwtRoundScaleDraw();
    roundScaleDraw->setAngleRange(-135,135);
    ui->Knob->setScaleDraw(roundScaleDraw);

在这里插入图片描述

    QwtRoundScaleDraw *roundScaleDraw = new QwtRoundScaleDraw();
    roundScaleDraw->setAngleRange(-180,180);
    ui->Knob->setScaleDraw(roundScaleDraw);

在这里插入图片描述
4.设置数值范围

    QwtScaleDiv scaleDiv = ui->Knob->scaleEngine()->divideScale(5,25,5,5,1.0);
    ui->Knob->setScale(scaleDiv);

参数说明如下:
在这里插入图片描述
5.监听旋钮滚动数值的变化(使用信号槽)

connect(ui->Knob,SIGNAL(valueChanged(double)),this,SLOT(onValueChanged(double)));
onValueChanged(double value)
{
    //qDebug()<<QStringLiteral("旋钮当前数值:")<<value;

    ui->label_2->setNum(value);
}

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值