当前位置: 首页 > article >正文

qt 鼠标点击事件

大概就这几种,

按左键右键

void QtWidgetsApplication7::mousePressEvent(QMouseEvent *event)
{
	//如果是鼠标左键按下
	if (event->button() == Qt::LeftButton) {
		QCursor cursor;
		cursor.setShape(Qt::ClosedHandCursor);
		QApplication::setOverrideCursor(cursor);
		offset = event->globalPos() - pos();
	}
	else if (event->button() == Qt::RightButton) {
		QCursor cursor(QPixmap(":/res/mouse.png"));
		QApplication::setOverrideCursor(cursor);
	}
}

释放事件

void QtWidgetsApplication7::mouseReleaseEvent(QMouseEvent *event)
{
	//释放事件
	QApplication::restoreOverrideCursor();
}

双击事件

void QtWidgetsApplication7::mouseDoubleClickEvent(QMouseEvent *event)
{
	if (event->button() == Qt::LeftButton) {
		if (windowState() != Qt::WindowFullScreen) {
			setWindowState(Qt::WindowFullScreen);
		}
		else {
			setWindowState(Qt::WindowNoState);
		}
	}
}

鼠标移动事件

void QtWidgetsApplication7::mouseMoveEvent(QMouseEvent *event)
{
	//移动过程中判断鼠标是左键点击并且移动,那么要用buttons,返回的是鼠标状态的集合
	if (event->buttons() & Qt::LeftButton) {
		//获取窗口应当移动到的位置
		QPoint windowpos = event->globalPos() - offset;
		this->move(windowpos);
	}
}

滚轮事件

void QtWidgetsApplication7::wheelEvent(QWheelEvent *event)
{
	//鼠标滚动远离使用者放大textedit
	if (event->delta() > 0) {
		qDebug() << "catch wheel event delta > 0" << endl;
		ui.textEdit->zoomIn();
	}
	else {
		qDebug() << "catch wheel event delta < 0" << endl;
		ui.textEdit->zoomOut();
	}
}


http://www.kler.cn/a/442859.html

相关文章:

  • Servlet学习中遇到的一些问题及解决
  • 从零开始学习 sg200x 多核开发之 sophpi 编译生成 fip.bin 流程梳理
  • docker修改容器网络
  • Cobalt Strike 4.8 用户指南-第十四节 Aggressor 脚本
  • 强化学习Q-learning及其在机器人路径规划系统中的应用研究,matlab代码
  • ubuntu禁用内核更新
  • 【Java入门指南 Day15:Java网络编程】
  • C# 如何使用多线程
  • 深入理解数据库 JOIN 操作
  • 【Tomcat】第一站:理解tomcat与Socket
  • 【面试问题】JIT 是什么?和 JVM 什么关系?
  • IDEA下加载音频文件操作
  • Linux 查看文件末尾命令 tail 详细介绍
  • [LeetCode-Python版] 876. 链表的中间结点
  • 一键学懂BurpSuite(8)
  • 【Java入门指南 Day11:Lambda表达式与Stream API】
  • 8.2 分库分表简介
  • Java创建对象有几种方式?
  • 理解并使用 sysdig
  • ubuntu监测硬盘状态