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
  • 相关阅读:
    尤埃开放服务平台(OSGi.NET)带给您的价值
    用C#实现的条形码和二维码编码解码器
    php基本语法
    大型网站核心技术
    大型公司里开发和部署前端代码——引自前百度前端工程师
    Python基础 函数
    Python 循环
    Binary Agents
    Steamroller
    Drop it
  • 原文地址:https://www.cnblogs.com/minadukirinno/p/14918183.html
Copyright © 2011-2022 走看看