用python写一个能显示图片的Qlabel并支持双击鼠标获取点击位置
时间: 2024-09-30 09:13:03 浏览: 27
PyQt6鼠标标点示例程序 QLabel图片上获取鼠标坐标并显示红点
在Python中,你可以使用`PyQt5`库来创建一个包含`QLabel`的窗口,并添加图像处理功能,以便用户双击鼠标时可以获取点击位置。下面是一个简单的示例:
```python
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QPixmap
class ImageWidget(QWidget):
def __init__(self, img_path):
super().__init__()
self.init_ui(img_path)
def init_ui(self, img_path):
self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) # 隐藏帮助按钮
self.setWindowTitle('Image Viewer')
self.image_label = QLabel(self)
pixmap = QPixmap(img_path)
self.image_label.setPixmap(pixmap.scaled(self.size(), Qt.KeepAspectRatio))
self.image_label.mousePressEvent = self.on_click_event
layout = QVBoxLayout()
layout.addWidget(self.image_label)
self.setLayout(layout)
def on_click_event(self, event):
if event.button() == QtCore.Qt.LeftButton and event.doubleClick():
pos = self.image_label.mapToGlobal(event.pos())
print(f"Double-clicked at position: ({pos.x()}, {pos.y()})")
if __name__ == "__main__":
app = QApplication(sys.argv)
img_path = "path_to_your_image.jpg" # 替换为你要显示的图片路径
widget = ImageWidget(img_path)
widget.show()
sys.exit(app.exec_())
```
在这个例子中,我们创建了一个名为`ImageWidget`的窗口,其中包含一个`QLabel`用于显示图片。当用户双击左键时,会触发`on_click_event`方法,然后打印出点击的位置。
阅读全文