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:
parent
06cedd2150
commit
c86201dc5b
@ -1,9 +1,17 @@
|
||||
from __future__ import print_function
|
||||
import sys
|
||||
import math
|
||||
|
||||
try:
|
||||
from PyQt4.QtGui import (QPushButton, QLineEdit, QSizePolicy, QRegExpValidator, QLabel,
|
||||
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):
|
||||
def __init__(self, password, encoded_value):
|
||||
@ -11,7 +19,12 @@ class PinButton(QPushButton):
|
||||
self.password = password
|
||||
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)
|
||||
else:
|
||||
raise Exception('Unsupported Qt version')
|
||||
|
||||
def _pressed(self):
|
||||
self.password.setText(self.password.text() + str(self.encoded_value))
|
||||
@ -31,7 +44,13 @@ class PinMatrixWidget(QWidget):
|
||||
self.password = QLineEdit()
|
||||
self.password.setValidator(QRegExpValidator(QRegExp('[1-9]+'), None))
|
||||
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)
|
||||
else:
|
||||
raise Exception('Unsupported Qt version')
|
||||
|
||||
self.strength = QLabel()
|
||||
self.strength.setMinimumWidth(75)
|
||||
@ -86,7 +105,7 @@ if __name__ == '__main__':
|
||||
'''
|
||||
Demo application showing PinMatrix widget in action
|
||||
'''
|
||||
a = QApplication(sys.argv)
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
matrix = PinMatrixWidget()
|
||||
|
||||
@ -96,7 +115,12 @@ if __name__ == '__main__':
|
||||
sys.exit()
|
||||
|
||||
ok = QPushButton('OK')
|
||||
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.addWidget(matrix)
|
||||
@ -107,4 +131,4 @@ if __name__ == '__main__':
|
||||
w.move(100, 100)
|
||||
w.show()
|
||||
|
||||
a.exec_()
|
||||
app.exec_()
|
||||
|
Loading…
Reference in New Issue
Block a user