作った時の環境
Python 3.9.4
PyQt5==5.15.4
PyQt5-Qt5==5.15.2
PyQt5-sip==12.8.1
sip==6.0.3
コード
from PyQt5.QtWidgets import QLabel
from PyQt5.QtCore import Qt, pyqtSignal
class ClickableLabel(QLabel):
clicked = pyqtSignal()
def __init__(self, parent=None):
super(ClickableLabel, self).__init__(parent)
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
self.clicked.emit()
return QLabel.mousePressEvent(self, event)
使い方
cl = ClickableLabel()
cl.clicked.connect(スロット)
他は通常のQLabel
と同じ。
現場からは以上です。
参考記事
シグナルとスロット詳細 - yu00’s blog
python - pyqtで隠しボタンのようなものを作りたい - スタック・オーバーフロー
Python 3.x - Python、Pyqt5でQLineEditで、クリックされたQlineEditのオブジェクト名をラベルに表示したい|teratail