Найти - Пользователи
Полная версия: Python PyQt5 как правильно передать данные из QLineEdit?
Начало » GUI » Python PyQt5 как правильно передать данные из QLineEdit?
1
dima_ikar
Помогите разобраться с обработкой данных из QLineEdit
кусочек ввода
self.login1 = QLineEdit(Teco)
self.login1.setGeometry(QtCore.QRect(90, 70, 113, 20))
self.login1.setObjectName(“login”)
———————————————————-
и его обработчик
self.login1 = self.login1.text()
self.password = self.password.text()
print(str(self.login1), str(self.password))
if str(self.login1) in str(logInZ):
if str(self.password) == str(passWdZ):
messagebox.showinfo(“Hello”, self.login1)
else:
messagebox.showerror(“Mo Passord”)
self.close_window()
else:
messagebox.showerror(“No login”, self.login1)
self.close_window()
———————————————–
все хорошо НО программа при закрытии окна вылетает с ошибкой памяти
Process finished with exit code -1073740791 (0xC0000409)
PEHDOM
ну так покажите весь код, что у вас в self.close_window()? что такое вообще этот ваш self?

 if str(self.login1) in str(logInZ):
if str(self.password) == str(passWdZ)
это плохой пример, хранить логины-пароли в памяти в открытом виде.
dima_ikar
Вот мой весь код
—————————————————————–
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import tkinter
from tkinter import messagebox
class Ui_Dialog(QMainWindow):
window_height = 300
window_width = 400
def setupUi(self, Teco):
Teco.setWindowIcon(QIcon('logo1.png'))
Teco.setObjectName(“Teco”)
Teco.setFixedSize(self.window_height, self.window_width)
oImage = QImage(“6706.jpg”)
sImage = oImage.scaled(QSize(self.window_height, self.window_width))
palette = QPalette()
palette.setBrush(QPalette.Window, QBrush(sImage))
Teco.setPalette(palette)
font = QtGui.QFont()
font.setPointSize(10)
Teco.setFont(font)
self.enter = QtWidgets.QPushButton(Teco)
self.enter.setGeometry(QtCore.QRect(60, 200, 75, 23))
self.enter.setObjectName(“enter”)
self.enter.setToolTip('Next page')
self.enter.clicked.connect(self.showDialog)
self.quit = QtWidgets.QPushButton(Teco)
self.quit.setGeometry(QtCore.QRect(160, 200, 75, 23))
self.quit.setObjectName(“Quit”)
self.quit.clicked.connect(QCoreApplication.instance().quit)
self.login = QLineEdit(Teco)
self.login.setGeometry(QtCore.QRect(90, 70, 113, 20))
self.login.setObjectName(“login”)
self.password = QLineEdit(Teco)
self.password.setEchoMode(QLineEdit.Password)
self.password.setGeometry(QtCore.QRect(90, 150, 113, 20))
self.password.setObjectName(“password”)
layout = QFormLayout()
layout.addRow('Login:', self.login)
layout.addRow('Password:', self.password)
self.label = QtWidgets.QLabel(Teco)
self.label.setGeometry(QtCore.QRect(90, 20, 120, 41))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setLayoutDirection(QtCore.Qt.LeftToRight)
self.label.setObjectName(“label”)
self.label_2 = QtWidgets.QLabel(Teco)
self.label_2.setGeometry(QtCore.QRect(90, 100, 141, 41))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.label_2.setFont(font)
self.label_2.setLayoutDirection(QtCore.Qt.LeftToRight)
self.label_2.setObjectName(“label_2”)
self.retranslateUi(Teco)
QtCore.QMetaObject.connectSlotsByName(Teco)
def retranslateUi(self, Teco):
_translate = QtCore.QCoreApplication.translate
Teco.setWindowTitle(_translate(“Teco”, “Teco Monitoring”))
self.enter.setText(_translate(“Teco”, “Enter”))
self.quit.setText(_translate(“Teco”, “Quit”))
self.label.setText(_translate(“Teco”, “Enter your name:”))
self.label_2.setText(_translate(“Teco”, “Enter your pass:”))
def showDialog(self):
root = tkinter.Tk()
root.withdraw()
logInZ = ‘dima’
passWdZ = ‘123’
self.login = self.login.text()
self.password = self.password.text()
print(str(self.login), str(self.password))
if self.login in logInZ:
if self.password == passWdZ:
messagebox.showinfo(“Hello”, self.login)
else:
messagebox.showerror(“Mo Passord”)
self.close_window()
else:
messagebox.showerror(“No login”, self.login)
self.close_window()
if __name__ == “__main__”:
app = QtWidgets.QApplication(sys.argv)
Teco = QtWidgets.QDialog()
ui = Ui_Dialog()
ui.setupUi(Teco)
Teco.show()
sys.exit(app.exec_())
PEHDOM
код в теги
[code python][/code]
иначе ХЗ что там у вас
dima_ikar
PEHDOM
ну так покажите весь код, что у вас в self.close_window()? что такое вообще этот ваш self?
это как вариант - понятно что он будет с базы браться потом
Ниже весь мой код
PEHDOM
dima_ikar
Ниже весь мой код
все же не весь,
1. код нужно помещать в теги
[code python][/code]
2. непонятно что же делает self.close_window() но это точно не метод QMainWindow, я гарантирую вам это.
3. зачем использвать tkinter для мессджбокса? чем не устраивает QMessageBox?
dima_ikar
все вопрос решился
if (self.password == passWdZ):
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB