PyQt5 ve sqlite veritabanına bağlanamama

import sqlite3
from PyQt5 import QtWidgets
import sys

class Kullanıcı_Girişi_Sınıfı(QtWidgets.QWidget):

    def __init__(self):
        super().__init__()
        self.init_ui()
        self.bağlantı_giriş_yap()

    def bağlantı_giriş_yap(self):
        con = sqlite3.connect("Version 1.1.db")
        self.cursor = con.cursor()

    def init_ui(self):
        self.yazı_ad = QtWidgets.QLabel("Kullanıcı Adı")
        self.yazı_şifre = QtWidgets.QLabel("Parola")
        self.kullanıcı_alanı = QtWidgets.QLineEdit()
        self.şifre_alanı = QtWidgets.QLineEdit()
        self.şifre_alanı.setEchoMode(QtWidgets.QLineEdit.Password)
        self.giriş_yap = QtWidgets.QPushButton("Giriş Yap")
        self.kayıt_ol = QtWidgets.QPushButton("Kayıt Ol")
        self.yazı = QtWidgets.QLabel("")

        v_box = QtWidgets.QVBoxLayout()
        v_box.addWidget(self.yazı_ad)
        v_box.addWidget(self.kullanıcı_alanı)
        v_box.addWidget(self.yazı_şifre)
        v_box.addWidget(self.şifre_alanı)
        v_box.addStretch()
        v_box.addWidget(self.giriş_yap)
        v_box.addWidget(self.kayıt_ol)

        h_box = QtWidgets.QHBoxLayout()
        h_box.addLayout(v_box)
        self.setLayout(h_box)

        self.giriş_yap.clicked.connect(self.__login)
        self.setWindowTitle("Kullanıcı Girişi")
        self.show()
    def __login(self):
        ad = self.kullanıcı_alanı.text()
        parola = self.şifre_alanı.text()
        self.cursor.execute("select * from Login values(?,?))",(ad,parola))
        data = self.cursor.fetchall()
        if len(data) == 0:
            self.yazı.setText("Böyle Bir Kullanıcı Yok.\nTekrar Deneyin.")
        else:
            self.yazı.setText("Hoşgeldiniz.",ad)

app = QtWidgets.QApplication(sys.argv)
ara_yüz = Kullanıcı_Girişi_Sınıfı()
sys.exit(app.exec_())`

veritabanına önceden kendim zaten üye eklemiştim, yazdığım kodlardan da anlaşılabileceği gibi eğer veritabanından aldığım ‘data’ nın uzunluğu 0 ise “böyle bir kullanıcı yok” demesi gerekirken program hiç bir tepki vermiyor sadece kapanıyor herhangi bir hata da almıyorum. Teşekkürler.

import sqlite3
from PyQt5 import QtWidgets
import sys

class Kullanıcı_Girişi_Sınıfı(QtWidgets.QWidget):

	def __init__(self):
		super().__init__()
		self.init_ui()
		self.bağlantı_giriş_yap()

	def bağlantı_giriş_yap(self):
		con = sqlite3.connect("Version 1.1.db")
		self.cursor = con.cursor()

	def init_ui(self):
		self.yazı_ad = QtWidgets.QLabel("Kullanıcı Adı")
		self.yazı_şifre = QtWidgets.QLabel("Parola")
		self.kullanıcı_alanı = QtWidgets.QLineEdit()
		self.şifre_alanı = QtWidgets.QLineEdit()
		self.şifre_alanı.setEchoMode(QtWidgets.QLineEdit.Password)
		self.giriş_yap = QtWidgets.QPushButton("Giriş Yap")
		self.kayıt_ol = QtWidgets.QPushButton("Kayıt Ol")
		self.yazı = QtWidgets.QLabel("")

		v_box = QtWidgets.QVBoxLayout()
		v_box.addWidget(self.yazı_ad)
		v_box.addWidget(self.kullanıcı_alanı)
		v_box.addWidget(self.yazı_şifre)
		v_box.addWidget(self.şifre_alanı)
		v_box.addStretch()
		v_box.addWidget(self.giriş_yap)
		v_box.addWidget(self.kayıt_ol)
		v_box.addWidget(self.yazı)

		h_box = QtWidgets.QHBoxLayout()
		h_box.addLayout(v_box)
		self.setLayout(h_box)

		self.giriş_yap.clicked.connect(self.__login)
		self.setWindowTitle("Kullanıcı Girişi")
		self.show()
	def __login(self):
		ad = self.kullanıcı_alanı.text()
		parola = self.şifre_alanı.text()
		self.cursor.execute("select * from Login where ad=? and sifre=?",(ad,parola))
		data = self.cursor.fetchall()
		if len(data) == 0:
			self.yazı.setText("Böyle Bir Kullanıcı Yok.\nTekrar Deneyin.")
		else:
			self.yazı.setText("Hoşgeldiniz: "+ad)

app = QtWidgets.QApplication(sys.argv)
ara_yüz = Kullanıcı_Girişi_Sınıfı()
sys.exit(app.exec_())

Bu şekilde deneyin. Sizin kodunuzda SQL cümlenizde hata var ve self.yazı isimli Label Layout’a eklenmemiş.

Sorun @smhgk’nin da gosterdigi ve duzelttigi gibi SELECT sorgusunda olmakla beraber, beni endiselendiren kisim su:

Program stderr’a bir hata mesaji bastiktan sonra SIGABRT ile ölüyor:

(venv) 10:51:33 134 aib@apollon:/tmp% python3 a.py >/dev/null 
Traceback (most recent call last):
  File "a.py", line 45, in __login
    self.cursor.execute("select * from Login values(?,?))",(ad,parola))
sqlite3.OperationalError: near "values": syntax error
zsh: abort      python3 a.py > /dev/null

Olme sekli cok onemli degil fakat stderr’a yazilan yuksek sesli hata mesajini gozden saklayan her hangi metodolojiyi kullaniyorsan, degistirmeni tavsiye ederim; bu sekilde program yazmak cok ama cok zor olacaktir.

(Python dosyasini cift tiklayarak calistiriyorsan, bir IDE’nin icinden veya daha iyisi benim gibi terminalden calistirmani tavsiye ediyorum.)

açık konuşmak gerekirse SIGABRT nedir ne değildir bilmiyorum fakat dediğiniz hataları düzelttim bununla beraber veritabanında bir kaç şeyi yanlış yapmışım onları düzeltmeme rağmen sorunumu çözemedim ve herhangi bir hata da almıyorum dediğiniz hatayı kapatacak bir şey kullanmıyorum kullanıyorsamda haberim yok pycharmı açarken çift tıklayarak açıyorum.

Pycharm’i bilen/kullanmis birisinin cevaplamasini bekleyelim o zaman, ben sadece terminalden veya stdout/stderr loglara yonlenmis sekilde calisiyorum.

Bu da cikti vermiyor o zaman, degil mi?

import sys; print("hedehodo", file=sys.stderr)

hayır hiç bir şekilde tepki yok programda

Sorun çözülmüştür. sqlite sorgusunda _ kullanmayıp boşluk kullandığım için problem çıkartıyormuş. teşekkürler.