QT开发中文网

QScrollBar *scrollr = qobject_cast(sender()); int dataSize = 201; if(scrollr == hBar_1) { long int n = lineseries_1->count(); qreal scrollValue = static_cast(value) / hBar_1->maximum(); // ...

要实现滚动条的上下箭头步进为1且能查看所有数据点,你可以通过以下方式进行修改:

QScrollBar *scrollr = qobject_cast<QScrollBar *>(sender());
int dataSize = 201;
if (scrollr == hBar_1)
{
    long int n = lineseries_1->count();
    qreal scrollValue = static_cast<qreal>(value) / hBar_1->maximum();

    // 计算每次滚动的步进量
    qreal stepSize = static_cast<qreal>(n - dataSize) / hBar_1->maximum();

    // 计算滚动条值对应的起始和结束索引
    long int startIdx = static_cast<long int>(scrollValue * (n - dataSize));
    long int endIdx = startIdx + dataSize - 1;

    if (startIdx > lineseries_1->count())
        return;

    axisX_1->setRange(startIdx, endIdx);

    // 设置滚动条的单步步进值为1
    scrollr->setSingleStep(1);
}

在这个修改中,我们首先计算了每次滚动的步进量 stepSize ,然后将该值设置给滚动条的单步步进。这样可以确保每次按下箭头时只移动一个数据点,并且保持能够查看所有数据点。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=8794

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?