1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-27 01:48:17 +00:00

add Qt5 support for PinMatrixWidget

This commit is contained in:
Pavol Rusnak 2016-11-28 17:56:32 +01:00
parent 06cedd2150
commit c86201dc5b
No known key found for this signature in database
GPG Key ID: 91F3B339B9A02A3D

View File

@ -1,9 +1,17 @@
from __future__ import print_function from __future__ import print_function
import sys import sys
import math import math
from PyQt4.QtGui import (QPushButton, QLineEdit, QSizePolicy, QRegExpValidator, QLabel,
QApplication, QWidget, QGridLayout, QVBoxLayout, QHBoxLayout) try:
from PyQt4.QtCore import QObject, SIGNAL, QRegExp, Qt from PyQt4.QtGui import (QPushButton, QLineEdit, QSizePolicy, QRegExpValidator, QLabel,
QApplication, QWidget, QGridLayout, QVBoxLayout, QHBoxLayout)
from PyQt4.QtCore import QObject, SIGNAL, QRegExp, Qt, QT_VERSION_STR
except:
from PyQt5.QtWidgets import (QPushButton, QLineEdit, QSizePolicy, QLabel,
QApplication, QWidget, QGridLayout, QVBoxLayout, QHBoxLayout)
from PyQt5.QtGui import QRegExpValidator
from PyQt5.QtCore import QRegExp, Qt
from PyQt5.Qt import QT_VERSION_STR
class PinButton(QPushButton): class PinButton(QPushButton):
def __init__(self, password, encoded_value): def __init__(self, password, encoded_value):
@ -11,7 +19,12 @@ class PinButton(QPushButton):
self.password = password self.password = password
self.encoded_value = encoded_value self.encoded_value = encoded_value
QObject.connect(self, SIGNAL('clicked()'), self._pressed) if QT_VERSION_STR >= '5':
self.clicked.connect(self._pressed)
elif QT_VERSION_STR >= '4':
QObject.connect(self, SIGNAL('clicked()'), self._pressed)
else:
raise Exception('Unsupported Qt version')
def _pressed(self): def _pressed(self):
self.password.setText(self.password.text() + str(self.encoded_value)) self.password.setText(self.password.text() + str(self.encoded_value))
@ -31,7 +44,13 @@ class PinMatrixWidget(QWidget):
self.password = QLineEdit() self.password = QLineEdit()
self.password.setValidator(QRegExpValidator(QRegExp('[1-9]+'), None)) self.password.setValidator(QRegExpValidator(QRegExp('[1-9]+'), None))
self.password.setEchoMode(QLineEdit.Password) self.password.setEchoMode(QLineEdit.Password)
QObject.connect(self.password, SIGNAL('textChanged(QString)'), self._password_changed)
if QT_VERSION_STR >= '5':
self.password.textChanged.connect(self._password_changed)
elif QT_VERSION_STR >= '4':
QObject.connect(self.password, SIGNAL('textChanged(QString)'), self._password_changed)
else:
raise Exception('Unsupported Qt version')
self.strength = QLabel() self.strength = QLabel()
self.strength.setMinimumWidth(75) self.strength.setMinimumWidth(75)
@ -86,7 +105,7 @@ if __name__ == '__main__':
''' '''
Demo application showing PinMatrix widget in action Demo application showing PinMatrix widget in action
''' '''
a = QApplication(sys.argv) app = QApplication(sys.argv)
matrix = PinMatrixWidget() matrix = PinMatrixWidget()
@ -96,7 +115,12 @@ if __name__ == '__main__':
sys.exit() sys.exit()
ok = QPushButton('OK') ok = QPushButton('OK')
QObject.connect(ok, SIGNAL('clicked()'), clicked) if QT_VERSION_STR >= '5':
ok.clicked.connect(clicked)
elif QT_VERSION_STR >= '4':
QObject.connect(ok, SIGNAL('clicked()'), clicked)
else:
raise Exception('Unsupported Qt version')
vbox = QVBoxLayout() vbox = QVBoxLayout()
vbox.addWidget(matrix) vbox.addWidget(matrix)
@ -107,4 +131,4 @@ if __name__ == '__main__':
w.move(100, 100) w.move(100, 100)
w.show() w.show()
a.exec_() app.exec_()