1#!/usr/local/bin/python3.8 2 3import PyQt5.QtWidgets as Qw 4import PyQt5.QtGui as Qg 5import PyQt5.QtCore as Qc 6from pyUIClass.setCustomAnchor import Ui_Dialog 7 8 9class CustomAnchorDialog(Qw.QDialog): 10 11 def __init__(self): 12 super().__init__() 13 self.ui = Ui_Dialog() 14 self.ui.setupUi(self) 15 self.ui.buttonBox.button(Qw.QDialogButtonBox.Reset).clicked.connect(self.resetDialog) 16 17 validator = Qg.QDoubleValidator() 18 19 self.ui.lineEditX.setValidator(validator) 20 self.ui.lineEditY.setValidator(validator) 21 22 self.ui.lineEditX.textChanged.connect(self.checkTextChanged) 23 self.ui.lineEditY.textChanged.connect(self.checkTextChanged) 24 25 def checkTextChanged(self, text): 26 if str(text) not in {'.', '-', '.-', '-.'} and str(text): 27 self.ui.buttonBox.button(Qw.QDialogButtonBox.Ok).setEnabled(True) 28 else: 29 self.ui.buttonBox.button(Qw.QDialogButtonBox.Ok).setEnabled(False) 30 31 def getPoint(self): 32 xPoint = float(self.ui.lineEditX.text()) 33 yPoint = float(self.ui.lineEditY.text()) 34 35 return Qc.QPointF(xPoint, yPoint) 36 37 def handleBtnBoxClick(self, button): 38 assert isinstance(button, Qw.QAbstractButton) 39 if button.text() == 'Reset': 40 self.resetDialog() 41 42 def resetDialog(self): 43 self.ui.lineEditX.setText('0') 44 self.ui.lineEditY.setText('0') 45