I’m trying to make a Lineedit that only accepts numbers from 1 to 12. But even using setValidator
, the code can't limit the numbers. This is the function that has the LineEdit
.(lineEdit should not accept numbers that are not between 1-12)
using Pyqt5 version 5.15.2
The OS is "Windows 7"
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
class Ui_mainWindow(QMainWindow):
def setupUi(self, mainWindow):
mainWindow.setObjectName("mainWindow")
mainWindow.resize(562, 605)
self.centralwidget = QtWidgets.QWidget(mainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(176, 91, 101, 31))
self.lineEdit.setValidator(QtGui.QIntValidator(1, 12, self))
self.labelOutput = QtWidgets.QLabel(self.centralwidget)
self.labelOutput.setGeometry(QtCore.QRect(176, 122, 101, 16))
self.listWidget = QtWidgets.QListWidget(self.centralwidget)
self.listWidget.setGeometry(QtCore.QRect(10, 182, 541, 351))
self.btnEnviar = QtWidgets.QPushButton(self.centralwidget)
self.btnEnviar.setGeometry(QtCore.QRect(500, 149, 51, 31))
self.btnEnviar.clicked.connect(self.print)
mainWindow.setCentralWidget(self.centralwidget)
QtCore.QMetaObject.connectSlotsByName(mainWindow)
_translate = QtCore.QCoreApplication.translate
mainWindow.setWindowTitle(_translate("mainWindow", "title"))
self.lineEdit.setText(_translate("mainWindow", "01"))
self.btnEnviar.setText(_translate("mainWindow", "Send"))
self.labelOutput.setText(_translate("mainWindow", "Output Number:"))
mainWindow.show()
def print(self):
self.listWidget.addItem(self.lineEdit.text())
comando = 'MS01INVE'+ self.lineEdit.text() + '\r'
self.listWidget.addItem(comando)
app = QApplication([])
mainWindow = QMainWindow()
ui = Ui_mainWindow()
ui.setupUi(mainWindow)
app.exec_()