python自定义事件event_pyqt自定义事件学习出现问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

from PyQt4.QtGui import *

from PyQt4.Qt import *

from PyQt4.QtCore import *

import sys

#第一种,自定义控件,使用重新实现特定事件处理器,派生一个组件,重新实现它的事件处理,主要使用mousePressEvent、mouseReleaseEvent以及mouseMoveEvent这三个事件处理

class MyBuuton(QPushButton):

def __init__(self,parent=None):

super(MyBuuton,self).__init__(parent)

def mousePressEvent(self,event):

self.setText(QString(*x:%1,y:%2*).arg(QString.number(event.x())).arg(QString.number(event.y())))

def mouseReleaseEvent(self, event):

self.setText(QString(*x:%1,y:%2*).arg(QString.number(event.x())).arg(QString.number(event.y())))

def mouseMoveEvent(self, event):

self.setText(QString(*x:%1,y:%2*).arg(QString.number(event.x())).arg(QString.number(event.y())))

def event(self, e):#看下&&

if e.type()==QEvent.MouseButtonPress:

event=MyBuuton(e)

self.setText(QString(*x:%1,y:%2*).arg(QString.number(event.x())).arg(QString.number(event.y())))

return True

elif e.type()==QEvent.MouseButtonPress or e.type()==QEvent.MouseMove:#屏蔽MouseButtonRelease和MouseMove事件

return True

return QPushButton.event(e)#其他事件调用基类的event()函数进行处理

QTextCodec.setCodecForTr(QTextCodec.codecForName(*utf-8*))

app =QApplication(sys.argv)

x = MyBuuton()

x.setWindowTitle(u*处理器*)

x.resize(400,200)

x.show()

app.exec_()

显示错误:

return QPushButton.event(e)#其他事件调用基类的event()函数进行处理

TypeError: QPushButton.event(QEvent): first argument of unbound method must have type *QPushButton*

学习地方:http://www.cnblogs.com/venow/archive/2012/10/10/2718019.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值