Проверка после потери фокуса QLineEdit на Pyside6
Нужно выполнить функцию, после того как QLineEdit потеряет фокус, \например нажатие на кнопку или выбор другого QLineEdit.
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Вы зря удалили вопрос, в котором более детально описали что вы собираетесь делать и привели пример вашего кода.
Так вот - вы не ответили, почему вы решили использовать виджет QLineEdit.
Я рекомендую вам для поля возраст использовать виджет QSpinBox.
Поменяйте импорты на свои (PySide6) и попробуйте.
У вас просто не получится набрать что-то отличное от 18 <= age <= 80
import sys
'''
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QGridLayout, QHBoxLayout, QLabel,
QLineEdit, QMainWindow, QSizePolicy, QWidget)
'''
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
# ??? from test import *
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.resize(371, 118)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.gridLayout = QGridLayout(self.centralwidget)
self.gridLayout.setObjectName(u"gridLayout")
self.label = QLabel(self.centralwidget)
self.label.setObjectName(u"label")
# self.lineEdit = QLineEdit(self.centralwidget)
self.spinBox = QSpinBox(self.centralwidget) # !!! +
self.label_2 = QLabel(self.centralwidget)
self.label_2.setObjectName(u"label_2")
self.lineEdit_2 = QLineEdit(self.centralwidget)
self.lineEdit_2.setObjectName(u"lineEdit_2")
self.gridLayout.addWidget(self.label, 0, 0)
self.gridLayout.addWidget(self.spinBox, 0, 1) # !!! +
self.gridLayout.addWidget(self.label_2, 1, 0)
self.gridLayout.addWidget(self.lineEdit_2, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
self.label.setText(QCoreApplication.translate("MainWindow", u"\u0412\u043e\u0437\u0440\u0430\u0441\u0442", None))
self.label_2.setText(QCoreApplication.translate("MainWindow", u"\u0427\u0442\u043e-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435", None))
class Test(QMainWindow, Ui_MainWindow):
def __init__(self):
super(Test, self).__init__()
self.setupUi(self)
self.spinBox.setRange(18, 80) # !!! +
if __name__ == "__main__":
app = QApplication(sys.argv)
app.setFont(QtGui.QFont("Times", 12, QtGui.QFont.Bold))
window = Test()
window.show()
sys.exit(app.exec())
