python+pyqt实现12306图片验证效果
人气:0思路:在鼠标点击位置加一个按钮,然后再按钮中的点击事件中写一个关闭事件.
#coding:utf-8 from PyQt4.QtGui import * from PyQt4.QtCore import * from push_button import * from PIL import Image class Yanzheng(QWidget): def __init__(self,parent=None): super(Yanzheng,self).__init__(parent) self.m_start_point=0 #x坐标 self.m_end_point=0 #y坐标 self.coordinate=[] self.codeimage="./img/code.png" self.connect(self,SIGNAL("addlable"),self.addpic) self.main_layout=QFormLayout() self.setLayout(self.main_layout) self.resize(293,190) self.pixmap=QPixmap("./img/cur.png") def addpic(self): print self.m_start_point,self.m_end_point xpoint=self.m_start_point ypoint=self.m_end_point-28 codepng2 = PushButton(self) codepng2.loadPixmapreal('./img/cur.png') codepng2.setGeometry(self.m_start_point,self.m_end_point,30,30) codepng2.show() #self.emit(SIGNAL("dellabel"),self.codepng2) self.coordinate.append("%s,%s" %(xpoint,ypoint)) self.connect(codepng2,SIGNAL("clicked()"),lambda:self.dellabel(codepng2,xpoint,ypoint)) #self.update() #删除标记 def dellabel(self,q,x,y): print x,y self.coordinate.remove("%s,%s" %(x,y)) q.close() def mousePressEvent(self,event): if (event.type()==QEvent.MouseButtonPress): self.m_start_point = event.pos().x()-12 self.m_end_point= event.pos().y()-12 self.emit(SIGNAL("addlable")) def paintEvent(self, event): p = QPainter(self) p.drawPixmap(0,0,QPixmap(self.codeimage)) if __name__=='__main__': import sys app=QApplication(sys.argv) inputurl=Yanzheng() inputurl.show() sys.exit(app.exec_())
效果图:
您可能感兴趣的文章:
加载全部内容