1 from PyQt4.QtGui import *
2 from PyQt4.QtCore import *
3 import PyQt4.QtCore as QtCore
4 import PyQt4.QtGui as QtGui
6 import bmp, pyqrnative, qrscanner
9 class QRCodeWidget(QWidget):
11 def __init__(self, data = None, size=4):
12 QWidget.__init__(self)
13 self.setMinimumSize(210, 210)
21 def set_addr(self, addr):
28 if self.addr and not self.qr:
29 self.qr = pyqrnative.QRCode(self.size, pyqrnative.QRErrorCorrectLevel.L)
30 self.qr.addData(self.addr)
34 def paintEvent(self, e):
39 black = QColor(0, 0, 0, 255)
40 white = QColor(255, 255, 255, 255)
47 qp.drawRect(0, 0, 198, 198)
51 k = self.qr.getModuleCount()
55 boxsize = min(r.width(), r.height())*0.8/k
57 left = (r.width() - size)/2
58 top = (r.height() - size)/2
62 if self.qr.isDark(r, c):
68 qp.drawRect(left+c*boxsize, top+r*boxsize, boxsize, boxsize)