本文实例为大家分享了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