Qwt中picker(拾取器)显示设置

本文介绍如何使用 QwtPlotPicker 类来自定义坐标轴显示,包括如何设置系统时间作为 x 轴坐标值,并展示如何调整 QwtPlotPicker 的样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      Qwt中有些时候会用到QwtPlotPicker类来设置绘图中的拾取器,显示当前位置的坐标信息。

若坐标轴的刻度值不是自定义,只需要将picker跟踪模式设置为AlwaysOn

picker->setTrackerMode( QwtPicker::AlwaysOn );

若坐标轴的刻度值是自定义,若将x轴定义为系统时间(分、秒),y轴保持不变,此时显示当前信息,需要继承QwtPlotPicker类覆盖

其中的virtual QwtText trackerTextF( const QPointF &pos ) const函数,代码如下

class Picker: public QwtPlotPicker
{
public:
    Picker( QWidget *canvas ):QwtPlotPicker( canvas )
    {
 
    }
protected:
    virtual QwtText trackerTextF( const QPointF &pos ) const
    {
        QString text;
        QDateTime dt;
        dt.setTime_t( ( int )pos.x() ); //获取时间
        text = dt.toString("mm:ss");
        text += " " + QString( "%1" ).arg( pos.y(), 0, 'f', 1 );
 
        QwtText qwttext( text );
        return qwttext;
    }
};

      除了对拾取器显示的设置以外,有些时候还需要对拾取器自身的设置。

代码如下:

    picker = new Picker( canvas );
    picker->setTrackerMode( QwtPicker::AlwaysOn );         //跟踪模式  
    picker->setTrackerPen( QColor( Qt::green ) );       //跟踪显示字体颜色
    //只有定义了它 才能设置对应的样式 比如想设置RectRubberBand必须先setStateMachine( new QwtPickerRectPointMachine() );
    picker->setStateMachine( new QwtPickerDragPointMachine() );
    picker->setRubberBandPen( QColor( Qt::green ) );               //拾取器点击后样式颜色       
    picker->setRubberBand( QwtPicker::CrossRubberBand );           //拾取器点击后样式     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值