Bir kullanıcı girişi arayüzü yapmak için uğraşıyorum. Kayıt ol ve giriş yap adlı iki butonum var. Kayıt olurken sıkıntı yaratmıyor ama giriş yapa basınca direk "Python Çalışmayı Durdurdu." hatasını veriyor. Veritabanından veri çekiyorum sanırsam ondan kaynaklanıyor ama bir türlü çözemedim. Yardımcı olursanız sevinirim. @Vavien.
Python:
import sys
import sqlite3
from PyQt5 import QtWidgets
class Window(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.create_connect()
self.init_ui()
def create_connect(self):
self.con = sqlite3.connect("kullanıcı_verileri.db")
self.cursor = self.con.cursor()
query = "Create table if not exists database (nickname TEXT, password TEXT)"
self.cursor.execute(query)
self.con.commit()
def init_ui(self):
self.welcome = QtWidgets.QLabel("Programa Hoşgeldiniz.")
self.nickname_area = QtWidgets.QLineEdit("")
self.password_area = QtWidgets.QLineEdit("")
self.password_area.setEchoMode(QtWidgets.QLineEdit.Password)
self.loginbutton = QtWidgets.QPushButton("Giriş Yap")
self.registerbutton = QtWidgets.QPushButton("Kayıt Ol")
v_box = QtWidgets.QVBoxLayout()
v_box.addWidget(self.welcome)
v_box.addWidget(self.nickname_area)
v_box.addWidget(self.password_area)
v_box.addStretch()
v_box.addWidget(self.loginbutton)
v_box.addWidget(self.registerbutton)
h_box = QtWidgets.QHBoxLayout()
h_box.addStretch()
h_box.addLayout(v_box)
h_box.addStretch()
self.setLayout(h_box)
self.setWindowTitle("Kullanıcı Girişi")
self.loginbutton.clicked.connect(self.login)
self.registerbutton.clicked.connect(self.register)
self.show()
def login(self):
nickname = self.nickname_area.text()
password = self.password_area.text()
query = "Select * from database where nickname = ? and where password = ?"
self.cursor.execute(query,(nickname,password))
data = self.cursor.fetchall()
if len(data) == 0:
self.welcome.setText("Böyle bir kullanıcı yok\n Lütfen Tekrar Deneyiniz.")
else:
self.welcome.setText("Hoşgeldiniz." + nickname)
def register(self):
nickname = self.nickname_area.text()
password = self.password_area.text()
query = "Insert into database Values (?,?)"
self.cursor.execute(query,(nickname,password))
self.con.commit()
self.welcome.setText("Başarıyla kayıt olundu.")
app = QtWidgets.QApplication(sys.argv)
window = Window()
sys.exit(app.exec())
Son düzenleyen: Moderatör: