通过实现
itemClicked
(QTableWidgetItem
)
信号的槽函数,就可以获得鼠标单击到的单元格指针,获得到了当前的位置信息
connect(tableWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem,int)),this,
SLOT(
getItem(QTreeWidgetItem,int))
);
通过
QTreeWIdgetltem
你可以获得到你想要的全部数据
qDebug()<<"mouse clicked";
QPoint pos(403,34);
QMouseEvent event0(QEvent::MouseButtonPress, pos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QApplication::sendEvent(view->page(), &event0);
QMouseEvent event1(QEvent::MouseButtonRelease, pos, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
QApplication::sendEvent(view->page(), &event1);
关键是这一句setMouseTracking(true);加在构造函数里面,根据qt的帮助文档,mousemoveEvent事件如果mouserTrack为false,那么只有鼠标按下才会执行,而且默认是false,所以需要把窗口事件设置一下
然后就简单了
protected:void mouseMoveEvent(QMouseEvent event);//添加mouseMover事件响应
//下面具体代码
void GetMousePoint::mouseMoveEvent(QMouseEvent event)
{
QString pStr("%1,%2");
pStr = pStrarg(event->pos()x())arg(event->pos()y());//这里pos是坐标,你把坐标按比例转换为你的刻度尺就可以了
ui->label->setText(pStr);
}
一前言
突发奇想,滚轮事件既然能被捕获,那能不能被确定滚轮的方向呢???
二过程
不管三七二十一,先把event打印一下
滚动过程中发现angleDelta有变化,并且是向前滚为正,向后滚为负,故猜测应该是angleDelta来体现的
后面查阅文档:
Returns the distance that the wheel is rotated, in eighths of a degree A positive value indicates that the wheel was rotated forwards away from the user; a negative value indicates that the wheel was rotated backwards toward the user
大概的意思就是,这个值是返回滚轮被旋转的距离,值表示滚轮向前旋转,远离用户;负值表示滚轮向后旋转向用户
至此,就可以确定滚动的方向了
void Widget::wheelEvent(QWheelEvent event)
{
qDebug()<<QDateTime::currentDateTime()toString("[yyyy-MM-dd HH:mm:sszzz]")<<event;
if(event->angleDelta()y()>0)
{
qDebug()<<"向前滚";
// 放大业务逻辑
}
else
{
qDebug()<<"向后滚";
// 缩小业务逻辑
}
}
原文链接: >
以上就是关于QT Qtablewidget数组,鼠标双击获取行与列应该怎么实现全部的内容,包括:QT Qtablewidget数组,鼠标双击获取行与列应该怎么实现、Windows下如何用Qt实现虚拟鼠标点击事件、Qt跟踪鼠标 显示鼠标位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)