Merge pull request #81 from bkkcoins/qr-scalable-centered
Make QR codes scalable and centered
This commit is contained in:
@@ -166,7 +166,6 @@ class QRCodeWidget(QWidget):
|
|||||||
|
|
||||||
black = QColor(0, 0, 0, 255)
|
black = QColor(0, 0, 0, 255)
|
||||||
white = QColor(255, 255, 255, 255)
|
white = QColor(255, 255, 255, 255)
|
||||||
boxsize = 6
|
|
||||||
|
|
||||||
if not self.qr:
|
if not self.qr:
|
||||||
qp = QtGui.QPainter()
|
qp = QtGui.QPainter()
|
||||||
@@ -176,11 +175,16 @@ class QRCodeWidget(QWidget):
|
|||||||
qp.drawRect(0, 0, 198, 198)
|
qp.drawRect(0, 0, 198, 198)
|
||||||
qp.end()
|
qp.end()
|
||||||
return
|
return
|
||||||
|
|
||||||
size = self.qr.getModuleCount()*boxsize
|
|
||||||
k = self.qr.getModuleCount()
|
k = self.qr.getModuleCount()
|
||||||
qp = QtGui.QPainter()
|
qp = QtGui.QPainter()
|
||||||
qp.begin(self)
|
qp.begin(self)
|
||||||
|
r = qp.viewport()
|
||||||
|
boxsize = min(r.width(), r.height())*0.8/k
|
||||||
|
size = k*boxsize
|
||||||
|
left = (r.width() - size)/2
|
||||||
|
top = (r.height() - size)/2
|
||||||
|
|
||||||
for r in range(k):
|
for r in range(k):
|
||||||
for c in range(k):
|
for c in range(k):
|
||||||
if self.qr.isDark(r, c):
|
if self.qr.isDark(r, c):
|
||||||
@@ -189,7 +193,7 @@ class QRCodeWidget(QWidget):
|
|||||||
else:
|
else:
|
||||||
qp.setBrush(white)
|
qp.setBrush(white)
|
||||||
qp.setPen(white)
|
qp.setPen(white)
|
||||||
qp.drawRect(c*boxsize, r*boxsize, boxsize, boxsize)
|
qp.drawRect(left+c*boxsize, top+r*boxsize, boxsize, boxsize)
|
||||||
qp.end()
|
qp.end()
|
||||||
|
|
||||||
|
|
||||||
@@ -208,13 +212,11 @@ class QR_Window(QWidget):
|
|||||||
main_box = QHBoxLayout()
|
main_box = QHBoxLayout()
|
||||||
|
|
||||||
self.qrw = QRCodeWidget()
|
self.qrw = QRCodeWidget()
|
||||||
main_box.addWidget(self.qrw)
|
main_box.addWidget(self.qrw, 1)
|
||||||
|
|
||||||
vbox = QVBoxLayout()
|
vbox = QVBoxLayout()
|
||||||
main_box.addLayout(vbox)
|
main_box.addLayout(vbox)
|
||||||
|
|
||||||
main_box.addStretch(1)
|
|
||||||
|
|
||||||
self.address_label = QLabel("")
|
self.address_label = QLabel("")
|
||||||
self.address_label.setFont(QFont(MONOSPACE_FONT))
|
self.address_label.setFont(QFont(MONOSPACE_FONT))
|
||||||
vbox.addWidget(self.address_label)
|
vbox.addWidget(self.address_label)
|
||||||
@@ -1202,8 +1204,8 @@ class ElectrumWindow(QMainWindow):
|
|||||||
d.setMinimumSize(270, 300)
|
d.setMinimumSize(270, 300)
|
||||||
vbox = QVBoxLayout()
|
vbox = QVBoxLayout()
|
||||||
qrw = QRCodeWidget(data)
|
qrw = QRCodeWidget(data)
|
||||||
vbox.addWidget(qrw)
|
vbox.addWidget(qrw, 1)
|
||||||
vbox.addWidget(QLabel(data))
|
vbox.addWidget(QLabel(data), 0, Qt.AlignHCenter)
|
||||||
hbox = QHBoxLayout()
|
hbox = QHBoxLayout()
|
||||||
hbox.addStretch(1)
|
hbox.addStretch(1)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user