55 lines
1.7 KiB
Python
55 lines
1.7 KiB
Python
#!/usr/bin/env python
|
|
|
|
import sys
|
|
|
|
from PyQt5.QtWidgets import QMainWindow, QApplication
|
|
from PyQt5.QtGui import QRegExpValidator, QIntValidator
|
|
from PyQt5.QtGui import QDoubleValidator
|
|
from PyQt5.QtCore import QRegExp
|
|
|
|
from ui_validators import Ui_Validators
|
|
|
|
class ValidatorsMain(QMainWindow):
|
|
def __init__(self):
|
|
QMainWindow.__init__(self)
|
|
|
|
# Set up the user interface from Designer.
|
|
self.ui = Ui_Validators()
|
|
|
|
self.ui.setupUi(self)
|
|
self._set_validators()
|
|
|
|
self.ui.bt_save.clicked.connect(self._save_pushed)
|
|
|
|
def _set_validators(self):
|
|
# Set up the validators (could be in separate function or module)
|
|
reg_ex = QRegExp(r"[A-Za-z0-9]{1,10}") # <1>
|
|
val_alphanum = QRegExpValidator(reg_ex, self.ui.le_alphanum) # <2>
|
|
self.ui.le_alphanum.setValidator(val_alphanum) # <3>
|
|
|
|
reg_ex = QRegExp(r"[a-z ]{0,30}") # <1>
|
|
val_lcspace = QRegExpValidator(reg_ex, self.ui.le_lcspace) # <2>
|
|
self.ui.le_lcspace.setValidator(val_lcspace) # <3>
|
|
|
|
val_nums_1_100 = QIntValidator(1, 100, self.ui.le_nums_1_100) # <4>
|
|
self.ui.le_nums_1_100.setValidator(val_nums_1_100) # <5>
|
|
|
|
val_float = QDoubleValidator(0.0, 20.0, 2, self.ui.le_float) # <6>
|
|
self.ui.le_float.setValidator(val_float) # <7>
|
|
|
|
def _save_pushed(self):
|
|
alphanum = self.ui.le_alphanum.text()
|
|
lcspace = self.ui.le_lcspace.text()
|
|
nums = self.ui.le_nums_1_100.text()
|
|
fl = self.ui.le_float.text()
|
|
msg = '{}/{}/{}/{}'.format(alphanum, lcspace, nums, fl)
|
|
self.ui.statusbar.showMessage(msg, 0) # <8>
|
|
|
|
if __name__ == '__main__':
|
|
app = QApplication(sys.argv)
|
|
main = ValidatorsMain()
|
|
main.show()
|
|
sys.exit(app.exec_())
|
|
|
|
|