资源简介
实现触摸屏QT滚动区手指下滑自动滚动。qt版本5.5.1。需继承带有滚动区域的原生QT类,重载mousePressEvent,mouseMoveEvent。并开启 setMouseTracking(true)。
代码片段和文件信息
#include “gzscrollarea.h“
#include
#include
#include
#include
GZScrollArea::GZScrollArea(QWidget *parent) :
QScrollArea(parent)
{
m_Body = new QWidget(this);
this->setWidget(m_Body);
//setAttribute(Qt::WA_Hover true);
this->setMouseTracking(true);
}
void GZScrollArea::setGZGeometry(int x int y int w int h)
{
this->setGeometry(x y w h);
m_Body->setGeometry(0 0 w y);
}
QWidget* GZScrollArea::getBody()
{
return m_Body;
}
//记录起始位置
void GZScrollArea::mousePressEvent(QMouseEvent *event)
{
m_TempPoint = event->pos();
}
//滑动鼠标下位
void GZScrollArea::mouseMoveEvent(QMouseEvent *event)
{
auto pos = event->pos();
auto vbar = this->verticalScrollBar();
//向下滑动 向下滚动
//auto offset = pos->y() - m_TempPoint.y();
//向上滑动 向下滚动
auto offset = m_TempPoint.y() - pos.y();
//获取当前滚动条位置
auto val = vbar->value();
//获取滚动条pagetemp区域高度
auto step = vbar->pageStep();
//设计移动位置
auto move = offset * step / m_Body->height();
if(move + val < 0 || move + val > m_Body->height()) return;
//移动
vbar->setValue(move + val);
}
相关资源
- Qt输入法事件 QInputMethodEvent
- QT简易画板
- 5个qt多线程
- QT 扫雷程序
- QT实现的类似QComplater可自定义匹配规
- QT5.5.1串口实现在线热拔插检测
- Qt编写的网络五子棋
- 原创 qt 组播实现的屏幕共享程序
- S3C44B0X+触摸屏连接电路
- PyQt5高阶界面控件
- QT读取Txt文件并显示在界面上完整版
- 用QT实现的表格编辑器
- Qt Quick自定义下拉框
- qt字符设备驱动,简单易学
- QT程序学生管理系统
- QT程序打地鼠源码,自己编写,测试无
- QT使用GSoap发布WebService的Demo
- QT不卡界面Demo V2
- 原创Qt 串口基础编程代码
- Qt全局热键 QtGlobalShortcut文档
- qt 5.9.1 调用周立功CAN卡第三方库
- 使用Qt实现可编辑的画图程序
- 使用Qt实现简单的画图程序
- Qt5.X的linuxfb平台源码补丁包
- Qt之QDoubleSlider 继承QSlider的双向滑块
- qt实现modbus
- 在QT中使用visp库来抓取pylon相机的测试
- SMART LINE系列触摸屏通过MODBUS协议直接
- 基于qt的闹钟
- QWebEngineView使用,点击链接,上一页,
评论
共有 条评论