slightly smarter qr code widget that does not need size parameter

This commit is contained in:
ecdsa 2013-03-04 11:01:09 +01:00
parent df3187d9a9
commit 56588de5d9
2 changed files with 11 additions and 9 deletions

View File

@ -1231,7 +1231,7 @@ class ElectrumWindow(QMainWindow):
main_text.setText(self.wallet.get_master_public_key()) main_text.setText(self.wallet.get_master_public_key())
main_text.setReadOnly(True) main_text.setReadOnly(True)
main_text.setMaximumHeight(170) main_text.setMaximumHeight(170)
qrw = QRCodeWidget(self.wallet.get_master_public_key(), 6) qrw = QRCodeWidget(self.wallet.get_master_public_key())
ok_button = QPushButton(_("OK")) ok_button = QPushButton(_("OK"))
ok_button.setDefault(True) ok_button.setDefault(True)

View File

@ -8,12 +8,11 @@ import bmp, pyqrnative
class QRCodeWidget(QWidget): class QRCodeWidget(QWidget):
def __init__(self, data = None, size=4): def __init__(self, data = None):
QWidget.__init__(self) QWidget.__init__(self)
self.setMinimumSize(210, 210) self.setMinimumSize(210, 210)
self.addr = None self.addr = None
self.qr = None self.qr = None
self.size = size
if data: if data:
self.set_addr(data) self.set_addr(data)
self.update_qr() self.update_qr()
@ -26,12 +25,15 @@ class QRCodeWidget(QWidget):
def update_qr(self): def update_qr(self):
if self.addr and not self.qr: if self.addr and not self.qr:
self.qr = pyqrnative.QRCode(self.size, pyqrnative.QRErrorCorrectLevel.L) for size in [4,5,6]:
self.qr.addData(self.addr) try:
try: self.qr = pyqrnative.QRCode(size, pyqrnative.QRErrorCorrectLevel.L)
self.qr.make() self.qr.addData(self.addr)
except: self.qr.make()
self.qr=None break
except:
self.qr=None
continue
self.update() self.update()
def paintEvent(self, e): def paintEvent(self, e):