def qrencode(self, fileName=None): #Functions to get the correct data data_fields = { "text": unicode(self.textEdit.toPlainText()), "url": unicode(self.urlEdit.text()), "bookmark": ( unicode(self.bookmarkTitleEdit.text()), unicode(self.bookmarkUrlEdit.text()) ), "email": unicode(self.emailEdit.text()), "emailmessage": ( unicode(self.emailEdit.text()), unicode(self.emailSubjectEdit.text()), unicode(self.emailBodyEdit.toPlainText()) ), "telephone": unicode(self.telephoneEdit.text()), "phonebook": (('N',unicode(self.phonebookNameEdit.text())), ('TEL', unicode(self.phonebookTelEdit.text())), ('EMAIL',unicode(self.phonebookEMailEdit.text())), ('NOTE', unicode(self.phonebookNoteEdit.text())), ('BDAY', unicode(self.phonebookBirthdayEdit.date().toString("yyyyMMdd")) if self.phonebookBirthdayLabel.isChecked() else ""), #YYYYMMDD ('ADR', unicode(self.phonebookAddressEdit.text())), #The fields divided by commas (,) denote PO box, room number, house number, city, prefecture, zip code and country, in order. ('URL', unicode(self.phonebookUrlEdit.text())), # ('NICKNAME', ''), ), "sms": ( unicode(self.smsNumberEdit.text()), unicode(self.smsBodyEdit.toPlainText()) ), "mms": ( unicode(self.mmsNumberEdit.text()), unicode(self.mmsBodyEdit.toPlainText()) ), "geo": ( unicode(self.geoLatEdit.text()), unicode(self.geoLongEdit.text()) ), "wifi": ( unicode(self.wifiSSIDEdit.text()), (u"WEP",u"WPA",u"nopass")[self.wifiEncriptionType.currentIndex()], unicode(self.wifiPasswordEdit.text())) } data_type = unicode(self.templates[unicode(self.selector.currentText())]) data = data_fields[data_type] level = (u'L',u'M',u'Q',u'H') if data: if data_type == 'emailmessage' and data[1] == '' and data[2] == '': data_type = 'email' data = data_fields[data_type] qr = QR(pixel_size = unicode(self.pixelSize.value()), data = data, level = unicode(level[self.ecLevel.currentIndex()]), margin_size = unicode(self.marginSize.value()), data_type = data_type, ) error = 1 if type(fileName) is not unicode: error = qr.encode() else: error = qr.encode(fileName) if error == 0: self.qrcode.setPixmap(QtGui.QPixmap(qr.filename)) self.saveButton.setEnabled(True) else: if NOTIFY: n = pynotify.Notification( "QtQR", unicode(self.trUtf8("ERROR: Something went wrong while trying to generate the QR Code.")), "qtqr" ) n.show() else: print "Something went wrong while trying to generate the QR Code" qr.destroy() else: self.saveButton.setEnabled(False)
def decodeWebcam(self): vdDialog = VideoDevices() if vdDialog.exec_(): device = vdDialog.videoDevices[vdDialog.videoDevice.currentIndex()][1] qr = QR() qr.decode_webcam(device=device) if qr.data_decode[qr.data_type](qr.data) == 'NULL': QtGui.QMessageBox.warning( self, self.trUtf8("Decoding Failed"), self.trUtf8("<p>Oops! no code was found.<br /> Maybe your webcam didn't focus.</p>"), QtGui.QMessageBox.Ok ) else: self.showInfo(qr) qr.destroy()
def _qr_code(qr_code_data): """ Create QR code. @type qr_code_data: string @param qr_code_data: Data to encode in the qr code """ if not qr_code_data: return "/static/images/default.png" qr_code_data = "\n".join(qr_code_data) qr_code_data = "mecard:" + qr_code_data qr_code = QR(qr_code_data) qr_code.encode() with open(qr_code.filename) as filename: data = filename.read() return "data:image/png;base64," + data.encode('base64') qr_code.destroy()
def decodeFile(self, fn=None): if not fn: fn = unicode(QtGui.QFileDialog.getOpenFileName( self, self.trUtf8('Open QRCode'), filter=self.trUtf8('Images (*.png *.jpg);; All Files (*.*)') ) ) if os.path.isfile(fn): qr = QR(filename=fn) if qr.decode(): self.showInfo(qr) else: QtGui.QMessageBox.information( self, self.trUtf8('Decode File'), unicode(self.trUtf8('No QRCode could be found in file: <b>%s</b>.')) % fn ) qr.destroy()