Qt之QTableView显示鼠标悬浮下的项的信息

这篇具有很好参考价值的文章主要介绍了Qt之QTableView显示鼠标悬浮下的项的信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        业务上遇到一些需求,某个需求是当鼠标移动到QTableView的item上时,显示该item的某些信息。首先想到的思路就是鼠标悬浮事件,即安装QTableView的事件过滤器,然后在eventFilter进行判断即可。实现很简单,主要在针对qt界面处理子界面的事件响应时,主要是还没搞清楚ui.tableView->viewport()->installEventFilter(this)的使用场景,就先记录一下。步骤如下:

1、安装QTableView的事件过滤器

ui.tableView->installEventFilter(this);
​

网上有一种说法,还需要使用ui.tableView->viewport()->installEventFilter(this),否则QTableView的事件过滤器无效,不过我目前还没有遇到这种情况。

2、重写eventFilter

bool MyViewWidget::eventFilter(QObject *obj, QEvent *event)
{
	if (obj == ui.tableView)
	{
		if (event->type() == QEvent::HoverMove)
		{
			QMouseEvent* mouseEvent = static_cast<QMouseEvent*>(event);
			QPoint pt = mouseEvent->pos();
			qDebug() << "move:" << pt;

			QModelIndex index = ui.tableView->indexAt(pt);
			if (!index.isValid())
			{
				return QWidget::eventFilter(obj, event);
			}
			qDebug() << "index.row:" << index.row()
				<< " index.column:" << index.column();

			onShowInfo(index.row() + 1, index.column() + 1);
		}
	}
	return QWidget::eventFilter(obj, event);
}

​

以上代码捕获到鼠标悬浮在QTableview上的事件,然后根据鼠标的pos得出当前的item的QModelIndex。文章来源地址https://www.toymoban.com/news/detail-536526.html

到了这里,关于Qt之QTableView显示鼠标悬浮下的项的信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包