本文实例为大家分享了python实现12306图片验证效果的具体代码,供大家参考,具体内容如下
思路:在鼠标点击位置加一个按钮,然后再按钮中的点击事件中写一个关闭事件.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#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_())
|
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/jylonger/article/details/50903721