Как проверить все lineEdit на пустоту
Я хочу проверить все lineEdit's на пустоту.
Для одного lineEdit у меня получается и выводит 'Okey', но я хочу сделать для всех.
def process(self):
num1 = (ui.lineEdit.text())
num2 = (ui.lineEdit_2.text())
num3 = (ui.lineEdit_3.text())
num4 = (ui.lineEdit_4.text())
num5 = (ui.lineEdit_5.text())
num6 = (ui.lineEdit_6.text())
if len(num1) > 0:
print('okey')
return
print('error')
Я пытался сделать так в виде списка, но не работает:
def process(self):
num1 = (ui.lineEdit.text())
num2 = (ui.lineEdit_2.text())
num3 = (ui.lineEdit_3.text())
num4 = (ui.lineEdit_4.text())
num5 = (ui.lineEdit_5.text())
num6 = (ui.lineEdit_6.text())
list = [num1, num2, num3, num4, num5, num6]
if len(list) > 0:
print('okey')
return
print('error')
UPD - Не понимаю почему не работает...
from cProfile import label
from ctypes import windll
import string
from tkinter import Button
from tkinter.tix import ButtonBox
from bs4 import BeautifulSoup
import requests
import multiprocessing
import time
from PyQt5.QtWidgets import *
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
from PyQt5 import QtWidgets
class Ui_MainWindow(QtWidgets.QMainWindow):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(640, 135)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(20, 30, 71, 20))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(100, 30, 71, 20))
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(190, 30, 71, 20))
self.lineEdit_3.setObjectName("lineEdit_3")
self.lineEdit_4 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_4.setGeometry(QtCore.QRect(270, 30, 71, 20))
self.lineEdit_4.setObjectName("lineEdit_4")
self.lineEdit_5 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_5.setGeometry(QtCore.QRect(360, 30, 71, 20))
self.lineEdit_5.setObjectName("lineEdit_5")
self.lineEdit_6 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_6.setGeometry(QtCore.QRect(450, 30, 71, 20))
self.lineEdit_6.setObjectName("lineEdit_6")
self.lineEdit_7 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_7.setGeometry(QtCore.QRect(540, 30, 71, 20))
self.lineEdit_7.setObjectName("lineEdit_7")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(100, 70, 381, 23))
self.pushButton.setObjectName("pushButton")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(30, 10, 61, 16))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(100, 10, 91, 16))
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(190, 10, 47, 13))
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(280, 10, 51, 16))
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(380, 10, 47, 13))
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(460, 10, 47, 13))
self.label_6.setObjectName("label_6")
self.label_7 = QtWidgets.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(540, 10, 61, 16))
self.label_7.setObjectName("label_7")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 640, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.pushButton.clicked.connect(self.process)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))
self.label.setText(_translate("MainWindow", "1"))
self.label_2.setText(_translate("MainWindow", "2"))
self.label_3.setText(_translate("MainWindow", "3"))
self.label_4.setText(_translate("MainWindow", "4"))
self.label_5.setText(_translate("MainWindow", "5"))
self.label_6.setText(_translate("MainWindow", "6"))
self.label_7.setText(_translate("MainWindow", "7"))
def process(self):
lineEdits = self.findChildren(QLineEdit)
text = ''
for lineEdit in lineEdits:
if not lineEdit.text():
print(f'Заполните {lineEdit.objectName()}')
text = f'{text}Заполните {lineEdit.objectName()}\n'
if text:
msg = QtWidgets.QMessageBox.information(
self, 'Внимание', text)
else:
msg = QtWidgets.QMessageBox.information(
self, 'Информация', 'Все lineEdits заполнены.')
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Чтобы получать быстрые и правильные ответы - ВСЕГДА предоставляйте минимально-воспроизводимый пример.
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.centralWidget = QtWidgets.QWidget(self)
self.centralWidget.setObjectName("centralWidget")
self.setCentralWidget(self.centralWidget)
self.layout = QtWidgets.QFormLayout(self.centralWidget)
self.label = QtWidgets.QLabel('Hello World', alignment=QtCore.Qt.AlignCenter)
self.layout.addRow('', self.label)
for i in range(6):
name = f"lineEdit_{i+1}"
lineEdit = QtWidgets.QLineEdit(placeholderText="Введите что-нибудь...")
lineEdit.setObjectName(name)
self.layout.addRow(name, lineEdit)
self.pushButton = QtWidgets.QPushButton('Проверить заполнение lineEdits')
self.pushButton.clicked.connect(self.button_clicked)
self.layout.addRow('', self.pushButton)
def button_clicked(self):
lineEdits = self.findChildren(QLineEdit)
text = ''
for lineEdit in lineEdits:
if not lineEdit.text():
print(f'Заполните {lineEdit.objectName()}')
text = f'{text}Заполните {lineEdit.objectName()}\n'
if text:
msg = QtWidgets.QMessageBox.information(
self, 'Внимание', text)
else:
msg = QtWidgets.QMessageBox.information(
self, 'Информация', 'Все lineEdits заполнены.')
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.resize(300, 400)
w.show()
sys.exit(app.exec_())
Update
У меня не получилось под свое сделать, ваше все работает и хорошо, я обновил пост
НИКОГДА НЕ ИЗМЕНЯЙТЕ код, сгенерированный Qt Designer, НИКОГДА.
Создайте другой класс, который наследуется от соответствующего виджета, и используйте созданный класс для его заполнения.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(640, 135)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(20, 30, 71, 20))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(100, 30, 71, 20))
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(190, 30, 71, 20))
self.lineEdit_3.setObjectName("lineEdit_3")
self.lineEdit_4 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_4.setGeometry(QtCore.QRect(270, 30, 71, 20))
self.lineEdit_4.setObjectName("lineEdit_4")
self.lineEdit_5 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_5.setGeometry(QtCore.QRect(360, 30, 71, 20))
self.lineEdit_5.setObjectName("lineEdit_5")
self.lineEdit_6 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_6.setGeometry(QtCore.QRect(450, 30, 71, 20))
self.lineEdit_6.setObjectName("lineEdit_6")
self.lineEdit_7 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_7.setGeometry(QtCore.QRect(540, 30, 71, 20))
self.lineEdit_7.setObjectName("lineEdit_7")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(100, 70, 381, 23))
self.pushButton.setObjectName("pushButton")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(30, 10, 61, 16))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(100, 10, 91, 16))
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(190, 10, 47, 13))
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(280, 10, 51, 16))
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(380, 10, 47, 13))
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(460, 10, 47, 13))
self.label_6.setObjectName("label_6")
self.label_7 = QtWidgets.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(540, 10, 61, 16))
self.label_7.setObjectName("label_7")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 640, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))
self.label.setText(_translate("MainWindow", "1"))
self.label_2.setText(_translate("MainWindow", "2"))
self.label_3.setText(_translate("MainWindow", "3"))
self.label_4.setText(_translate("MainWindow", "4"))
self.label_5.setText(_translate("MainWindow", "5"))
self.label_6.setText(_translate("MainWindow", "6"))
self.label_7.setText(_translate("MainWindow", "7"))
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.process)
def process(self):
lineEdits = self.findChildren(QLineEdit)
print(f'{lineEdits}') #
text = ''
for lineEdit in lineEdits:
if not lineEdit.text():
print(f'Заполните {lineEdit.objectName()}')
text = f'{text}Заполните {lineEdit.objectName()}\n'
if text:
msg = QtWidgets.QMessageBox.information(
self, 'Внимание', text)
else:
msg = QtWidgets.QMessageBox.information(
self, 'Информация', 'Все lineEdits заполнены.')
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())

