1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-07-06 06:42:33 +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
try:
from PyQt4.QtGui import (QPushButton, QLineEdit, QSizePolicy, QRegExpValidator, QLabel, from PyQt4.QtGui import (QPushButton, QLineEdit, QSizePolicy, QRegExpValidator, QLabel,
QApplication, QWidget, QGridLayout, QVBoxLayout, QHBoxLayout) QApplication, QWidget, QGridLayout, QVBoxLayout, QHBoxLayout)
from PyQt4.QtCore import QObject, SIGNAL, QRegExp, Qt 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
if QT_VERSION_STR >= '5':
self.clicked.connect(self._pressed)
elif QT_VERSION_STR >= '4':
QObject.connect(self, SIGNAL('clicked()'), self._pressed) 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)
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) 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')
if QT_VERSION_STR >= '5':
ok.clicked.connect(clicked)
elif QT_VERSION_STR >= '4':
QObject.connect(ok, SIGNAL('clicked()'), clicked) 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_()