QT5界面操作2:如何用状态栏显示鼠标坐标
在文 QT界面操作1:如何跟踪鼠标位置?实现了鼠标位置捕获,这里用两种方式显示鼠标坐标
1)状态栏显示
2)窗口刷新显示
先看如何获取鼠标位置的代码。
import sys
from PyQt5.QtCore import (QEvent, QTimer, Qt)
from PyQt5.QtWidgets import (QApplication, QMenu, QWidget)
from PyQt5.QtGui import QPainterclass Widget(QWidget):def __init__(self, parent=None):super(Widget, self).__init__(parent)self.resize(1200, 800)self.move(100, 100)#设置标题self.setWindowTitle("Events")self.setMouseTracking(True)def mouseMoveEvent(self, event):#如果没有鼠标双击,执行globalPos = self.mapToGlobal(event.pos())x = globalPos.x()y = globalPos.y()print(x,y)if __name__ == "__main__":app = QApplication(sys.argv)form = Widget()form.show()app.exec_()
二、用状态栏显示鼠标信息
以上代码跟踪鼠标位置,需要少量修改。
这里先看如何将坐标显示在状态栏,将QWidget换成QMainFrame,因为:
- 只有QMainFrame才有状态栏。
- 必须启动状态栏self.statusBar()
import sys from PyQt5.QtCore import (QEvent, QTimer, Qt) from PyQt5.QtWidgets import (QApplication, QMenu,QMainWindow) from PyQt5.QtGui import QPainterclass Widget( QMainWindow ):def __init__(self, parent=None):super(Widget, self).__init__(parent)self.resize(1200, 800)self.move(100, 100)#设置标题self.setWindowTitle("Events") self.setMouseTracking(True)self.statusBar() def mouseMoveEvent(self, event):#如果没有鼠标双击,执行globalPos = self.mapToGlobal(event.pos())x = globalPos.x()y = globalPos.y()strNum = '鼠标位置{0:3d},{1:3d} '.format(x, y)print( strNum)self.statusBar().showMessage( strNum )if __name__ == "__main__":app = QApplication(sys.argv)form = Widget()form.show()app.exec_()
QT5界面操作2:如何用状态栏显示鼠标坐标相关推荐
- MFC实时显示鼠标坐标
实时显示鼠标坐标 方法一:在窗口的客户区实时显示鼠标坐标 以左上角为例,直接在鼠标移动消息的响应函数中添加以下代码. void CMFC_DrawView::OnMouseMove(UINT nFla ...
- QT5界面操作3: QPainter和paintEvent(self, event)的配合
一 说明 本篇继续以显示鼠标位置做例:用窗口的paintEvent事件进行显示.本例示范如何用painter.update.paintEvent几个方面的配套. 注意: QPainter几乎只能在窗 ...
- QGIS二次开发:鼠标在地图上移动时,状态栏显示鼠标所在位置经纬度
主要思路: 当鼠标在地图画布控件上移动时,会发送xyCoordinates信号,该信号参数是墨卡托坐标系表示的地图上的点坐标,然后将墨卡托坐标转为经纬度表示的WSG84坐标,绑定该信号到槽函数,然后发 ...
- Win32 API 显示鼠标坐标位置
在窗口过程添加如下代码:如果还不会新建Win32项目,参阅Petzold的书: case WM_RBUTTONDOWN :hdc=GetDC(hwnd);x = GET_X_LPARAM(lParam ...
- ROS Qt5 librviz人机交互界面开发四(添加rviz显示界面)
本系列教程文章专栏: ROS机器人GUI程序开发 本系列课程已上线古月学院,欢迎感兴趣的小伙伴订阅: ROS Qt开发环境搭建以及基础知识介绍 ROS人机交互软件的界面开发 ROS Rviz组件开发方 ...
- Linux如何在任务栏显示时间,在MFC[转载]在MFC状态栏显示时间 状态栏显示时间
c/c++ vc 在mfc状态栏显示时间,在VC的控件中有个Status bar可以在窗体状态栏中添加日期和时间.其实通过简单的代码,你就能创建一个有时钟显示的状态栏,并且还能设置时钟栏的显示方式.举 ...
- Android动态控制状态栏显示和隐藏
记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的微技巧讲解. 其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发 ...
- 3D MAX界面操作教程及渲染技巧
3dmax软件是一款电脑设计辅助软件,广泛应用于建筑设计.室内设计.影视动画.广告设计.游戏设计等等,是三维设计师们不可或缺的一款软件. 这里小编为大家介绍该软件的工作界面,让广大初学者和爱好者有更加 ...
- 【MacOS】Hammerspoon-sugood多合一效率工具,新增状态栏显示系统信息(CPU/内存/硬盘/网速)-v0.1.7
运行环境要求 已测试可用的系统:MacOS 10.14 及以上 脚本功能说明 Github(国外地址) Gitee(国内地址) 已完成如下功能 状态栏显示输入法状态 时间同步功能 屏幕取色功能 JSO ...
最新文章
- LaTeX 公式输入软件 KLatexFormula
- redis 入门教程
- win7 telnet命令无法使用
- Ping命令检测网站运行状态
- afreecatv 回放下载_行车记录仪怎么看回放?行车记录仪停车后能自动录像吗
- 谷歌提出“数据回波”榨干GPU空闲时间,训练速度提升3倍多
- 华为mysql金融版_华为云数据库MySQL金融版公测,打造满足金融场景数据安全性的高端产品...
- Linux 用户线程数与文件句柄树调整(nproc与nofile的问题)
- 访问itunes store的时候提示网络连接超时的解决方案
- 2021应届生DJI校招在线测评几点说明
- 2021年,shopee虾皮一件代发模式的优势和背后风险是什么?
- JAVA征兵管理系统
- 用 Python 轻松将懂车帝视频转换为文本
- excel中统计每一行中指定字体颜色和填充颜色的单元格求和(不使用VBA)
- SingleTask和SingleInstance详解
- Linux系统——程序员跳槽必备
- Redis-master节点宕机后的处理方式
- 魔兽世界私服 服务器系统要求,全球最大《魔兽世界》私服有望重启 暴雪亲自运营...
- canvas制作旋转的太极图
- 面试:HTTP Host 头攻击,是什么?
热门文章
- c语言 二级菜单_收下计算机二级秘笈,考场上说好不哭!
- 更新pip到指定版本
- Java第一个程序Helloworld
- 使用Skywalking实现全链路监
- Nashorn——在JDK 8中融合Java与JavaScript之力--转
- Microservices Reference Architecture - with Spring Boot, Spring Cloud and Netflix OSS--转
- 关于 java.util.concurrent 您不知道的 5 件事--转
- spring-data-redis工程
- 元宇宙iwemeta: 重庆打造“数据之都”,拟成立重庆数据交易所
- RuoYi-Vue————权限管理