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
  • 相关阅读:
    Android开发环境配置
    Spring API后端原理及最佳实践
    Hibernate 编程
    MySQL 远程访问
    MySQL 5.7 8.0 重置密码
    H5 流媒体
    你不知道的项目
    Promise
    Why Vuex
    Vue 技术细节
  • 原文地址:https://www.cnblogs.com/minadukirinno/p/14918183.html
Copyright © 2011-2022 走看看