zoukankan      html  css  js  c++  java
  • 20210610

    今天的软件体系结构课程的时间主要是留给软件杯选题第三阶段的开发。目前初步实现了以前一直想实现的画面点击交互。Qt5中自带的QLabel无法实现此功能,因而自己重写了一个带相应信号方法的组件 ClickableQLabel 。同时,学习了Qt5基本的信号机制相关知识(一开始由于不知道这些对于怎么实现有点百思不得其解 )。

    以下付上该组件代码,其中 mousePressEvent 和 mouseReleaseEvent 都是返回鼠标相对Label左上角的坐标。

     1 from PyQt5.QtWidgets import QLabel
     2 from PyQt5 import QtCore
     3 
     4 class ClickableQLabel(QLabel):
     5     """
     6     ClickableQLabel Type 1
     7     """
     8     mousePressSignal = QtCore.pyqtSignal(int,int)
     9     mouseReleaseSignal = QtCore.pyqtSignal(int,int)
    10 
    11     def __init__(self, parent=None):
    12         super().__init__(parent)
    13 
    14     def mousePressEvent(self, ev):
    15         if ev.buttons() & QtCore.Qt.LeftButton:
    16             self.mousePressSignal.emit(ev.x(),ev.y())
    17             #return ev.x(),ev.y()
    18         else:
    19             self.mousePressSignal.emit(-1,-1)
    20             #return -1,-1
    21 
    22     def mouseReleaseEvent(self, ev):
    23         self.mouseReleaseSignal.emit(ev.x(),ev.y())
    24         #return ev.x(),ev.y()
    clickableqlabel.py
  • 相关阅读:
    ELASTIC 动态修改配置API
    ELASTIC API
    ELASTIC索引监控脚本
    java并发多线程纪要
    Git 基础
    Linux 权限规划ACL
    Linux账号管理(二)
    Linux账号管理(一)
    Linux 备份工具dump
    Linux 文件压缩、打包
  • 原文地址:https://www.cnblogs.com/minadukirinno/p/14918183.html
Copyright © 2011-2022 走看看