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
  • 相关阅读:
    0302思考并回答一些问题
    0104 自下而上
    1203 有穷自动机的构造
    11 10我的评论
    1029 C语言文法翻译(2)
    1014 对编译程序的心得与总结
    我们小组的编译程序
    0921 词法分析程序
    0909 关于编译原理的思考
    数据库设计之数据库设计三大范式
  • 原文地址:https://www.cnblogs.com/minadukirinno/p/14918183.html
Copyright © 2011-2022 走看看