Hi Dean,
Nope. The form itself is already built. Please refer to the full code below. Thanks for your feedback! :)
import sys
from datetime import date, datetime
import pymongo.mongo_client
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtWidgets import QMessageBox, QLineEdit
connection = pymongo.MongoClient('localhost', 27017)
database = connection['bremi691_ead']
collection = database['usuarios']
class UiDialog(object):
def __init__(self):
self.lineEdit_name = QtWidgets.QLineEdit(Dialog)
self.lineEdit_email = QtWidgets.QLineEdit(Dialog)
self.lineEdit_pwd = QtWidgets.QLineEdit(Dialog)
self.lineEdit_mktg = QtWidgets.QLineEdit(Dialog)
self.label_name = QtWidgets.QLabel(Dialog)
self.label_email = QtWidgets.QLabel(Dialog)
self.label_pwd = QtWidgets.QLabel(Dialog)
self.label_mktg = QtWidgets.QLabel(Dialog)
def setup_ui(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(448, 300)
self.lineEdit_name.setGeometry(QtCore.QRect(140, 50, 241, 21))
self.lineEdit_name.setInputMethodHints(QtCore.Qt.ImhUppercaseOnly)
self.lineEdit_name.setObjectName("lineEdit_name")
self.lineEdit_email.setGeometry(QtCore.QRect(140, 90, 191, 21))
self.lineEdit_email.setInputMethodHints(QtCore.Qt.ImhEmailCharactersOnly)
self.lineEdit_email.setObjectName("lineEdit_email")
self.lineEdit_pwd.setGeometry(QtCore.QRect(140, 130, 131, 21))
self.lineEdit_pwd.setInputMethodHints(QtCore.Qt.ImhSensitiveData | QtCore.Qt.ImhUppercaseOnly)
self.lineEdit_pwd.setObjectName("lineEdit_pwd")
self.lineEdit_mktg.setGeometry(QtCore.QRect(140, 170, 131, 21))
self.lineEdit_mktg.setInputMethodHints(QtCore.Qt.ImhUppercaseOnly)
self.lineEdit_mktg.setObjectName("lineEdit_mktg")
self.label_name.setGeometry(QtCore.QRect(71, 50, 60, 16))
self.label_name.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
self.label_name.setObjectName("label_name")
self.label_email.setGeometry(QtCore.QRect(71, 90, 60, 16))
self.label_email.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
self.label_email.setObjectName("label_email")
self.label_pwd.setGeometry(QtCore.QRect(70, 130, 60, 16))
self.label_pwd.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
self.label_pwd.setObjectName("label_pwd")
self.label_mktg.setGeometry(QtCore.QRect(60, 170, 71, 20))
self.label_mktg.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
self.label_mktg.setObjectName("label_mktg")
button_ok = QtWidgets.QPushButton(Dialog)
button_ok.setText("OK")
button_ok.move(200, 225)
button_ok.clicked.connect(insert_record)
self.retranslate_ui(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslate_ui(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Add new student"))
self.label_name.setText(_translate("Dialog", "Nome: "))
self.label_email.setText(_translate("Dialog", "e-mail: "))
self.label_pwd.setText(_translate("Dialog", "Senha:"))
self.label_mktg.setText(_translate("Dialog", "Marketing:"))
def clear_all():
my_form = {ui.lineEdit_name, ui.lineEdit_email, ui.lineEdit_pwd, ui.lineEdit_mktg}
for fields in my_form: fields.clear()
def insert_record():
try:
if ui.lineEdit_name.text() and ui.lineEdit_email.text() and ui.lineEdit_pwd.text() and ui.lineEdit_mktg.text() != "":
data = {'nome': ui.lineEdit_name.text(),
'email': ui.lineEdit_email.text(),
'senha': ui.lineEdit_pwd.text(),
'data_cadastro': datetime.today(),
'niveis_acesso_id': 1,
'validacao': 'sim',
'ativo': 0,
'como_chegou': ui.lineEdit_mktg.text()}
collection.insert_one(data)
clear_all()
QMessageBox.information(None, "Informação:", "Dados adicionados com sucesso!")
else:
QMessageBox.warning(None, "Antenção:", "Por favor preencha os campos em branco!")
except Exception:
QMessageBox.critical(None, "Erro:", "Não foi possível inserir os dados.\n Cheque o servidor de dados.")
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = UiDialog()
ui.setup_ui(Dialog)
Dialog.show()
sys.exit(app.exec_())