PyQt5中如何通过鼠标点击调用函数并在点击位置添加QLabel
实现左键点击添加QLabel的修改方案
你可以直接使用下方修改后的可运行代码,核心调整逻辑如下:
- 过滤鼠标左键点击事件,避免其他按键误触发
- 点击时获取当前坐标传递给标签创建逻辑
- 调整标签位置到点击坐标并渲染显示
- 修复原代码的缩进、重复导包等语法错误
import sys from PyQt5.QtWidgets import QApplication, QLabel, QWidget from PyQt5.QtCore import Qt class MouseTracker(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 200) self.setWindowTitle('Mouse Tracker') self.show() def mousePressEvent(self, event): # 仅响应鼠标左键点击 if event.button() == Qt.LeftButton: # 传入点击位置的相对坐标 self.todo(event.x(), event.y()) def todo(self, pos_x, pos_y): # 创建标签并设置位置 new_label = QLabel('This is label', self) new_label.move(pos_x, pos_y) new_label.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = MouseTracker() sys.exit(app.exec_())
如果需要自定义标签的样式、大小,可以在todo函数中调用new_label.setStyleSheet()、new_label.resize()等方法自行调整。
内容的提问来源于stack exchange,提问作者Ailaqi Barca
相关产品推荐
相关产品推荐

