Çözüldü Python ile giriş ayaryüzü yaparken hata

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
11 Ağustos 2019
Mesajlar
4.102
Makaleler
9
Çözümler
53
Merhaba arkadaşlar. Python'da giriş yapmak için arayüz yaparken, çalışıyor mu diye denerken kullanıcı adı ve parolayı doğru yazmama rağmem atadığm 'parola yanlış' error box çalışıyor. Hatada kendi atadığım kullanıcı adı ya da şifre yalnış yazıyor. Bilen arkadaşlar yardımcı olursa çok sevinirim.

1644010824449.png


Kod:
import tkinter
from tkinter import *

from tkinter import messagebox

pencere = Tk()

pencere.title("Min Konto")
pencere.geometry("600x400")


#Giris yapma buton fonksiyonu


username = 8800
password = 8800



# Center textim


center_text = Label(pencere, text= 'Logga in:')
center_text.config(font=("Arial", 30, 'bold'))
center_text.grid(padx=220, pady=10)

#Forsta text
def forsta_texten():

    Forsta_text = Label(pencere, text = 'Username:')
    Forsta_text.config(font=("Arial", 10))
    Forsta_text.grid(column=50, row=20)
    Forsta_text.place(x=170, y=77)

#Username yazi bosluk

username1 = tkinter.StringVar(pencere)
password1 = tkinter.StringVar(pencere)
username_alan = Entry(pencere, bd=8,textvariable= username1)
username_alan.grid(padx=110, pady=3)



#Password yazi bosluk

password_alan = Entry(pencere,show='*', bd=8, textvariable=password1)
password_alan.grid(padx=110, pady=3)




if username1 == username:
    print('Username dogru')
elif password1 == password:
    print('Password dogru')
#Andra text
def andra_text():
    Andra_text = Label(pencere, text = 'Password:')
    Andra_text.config(font=("Arial", 10))
    Andra_text.grid(column=50, row=20)
    Andra_text.place(x=170, y=120)



def buton_fonksiyonu():
    if (username1 == username and password1 == password):
        tkinter.messagebox.showinfo(title='Min Konto', message='Successfully logged in to the account!')

    elif (username1 != username) and (password1 != password):
        tkinter.messagebox.showerror(title= 'Min Konto', message='Användarnamnet eller lösenordet är felaktigt!')


#Buton1

def buton1 ():
    buton_forsta = tkinter.Button(text= 'Login',height=1,width=20, command= lambda: buton_fonksiyonu())
    buton_forsta.config(font= ('Arial',10, 'bold'))
    buton_forsta.place(x=200,y=175)

andra_text()
forsta_texten()
buton1()
center_text








# formu çiz


pencere.mainloop()
 
Çözüm
@Linuxginar dostum maalesef aynı şeyi username = 'sahil123' ve password = 'sahil123' en az 30 kere denedim.
Bir hata daha var, StringVar degeri almak icin .get() metodunu calistirmalisin.
Screenshot_2022-02-05_00-46-22.png

Python:
import tkinter
from tkinter import *

from tkinter import messagebox

pencere = Tk()

pencere.title("Min Konto")
pencere.geometry("600x400")


#Giris yapma buton fonksiyonu


username = "8800"
password = "8800"



# Center textim


center_text = Label(pencere, text= 'Logga in:')
center_text.config(font=("Arial", 30, 'bold'))
center_text.grid(padx=220, pady=10)

#Forsta text
def forsta_texten():

    Forsta_text = Label(pencere, text = 'Username:')
    Forsta_text.config(font=("Arial", 10))
    Forsta_text.grid(column=50, row=20)
    Forsta_text.place(x=170, y=77)

#Username yazi bosluk

username1 = tkinter.StringVar(pencere)
password1 = tkinter.StringVar(pencere)
username_alan = Entry(pencere, bd=8,textvariable= username1)
username_alan.grid(padx=110, pady=3)



#Password yazi bosluk

password_alan = Entry(pencere,show='*', bd=8, textvariable=password1)
password_alan.grid(padx=110, pady=3)



print(username1.get())
if username1.get() == username:
    print('Username dogru')
elif password1.get() == password:
    print('Password dogru')
#Andra text
def andra_text():
    Andra_text = Label(pencere, text = 'Password:')
    Andra_text.config(font=("Arial", 10))
    Andra_text.grid(column=50, row=20)
    Andra_text.place(x=170, y=120)



def buton_fonksiyonu():
    if (username1.get() == username and password1.get() == password):
        tkinter.messagebox.showinfo(title='Min Konto', message='Successfully logged in to the account!')

    elif (username1.get() != username) and (password1.get() != password):
        tkinter.messagebox.showerror(title= 'Min Konto', message='Användarnamnet eller lösenordet är felaktigt!')


#Buton1

def buton1 ():
    buton_forsta = tkinter.Button(text= 'Login',height=1,width=20, command= lambda: buton_fonksiyonu())
    buton_forsta.config(font= ('Arial',10, 'bold'))
    buton_forsta.place(x=200,y=175)

andra_text()
forsta_texten()
buton1()
center_text








# formu çiz


pencere.mainloop()

Dogru olan kod.
Merhaba arkadaşlar. Python'da giriş yapmak için arayüz yaparken, çalışıyor mu diye denerken kullanıcı adı ve parolayı doğru yazmama rağmem atadığm 'parola yanlış' error box çalışıyor. Hatada kendi atadığım kullanıcı adı ya da şifre yalnış yazıyor. Bilen arkadaşlar yardımcı olursa çok sevinirim.

Eki Görüntüle 1295606

Kod:
import tkinter
from tkinter import *

from tkinter import messagebox

pencere = Tk()

pencere.title("Min Konto")
pencere.geometry("600x400")


#Giris yapma buton fonksiyonu


username = 8800
password = 8800



# Center textim


center_text = Label(pencere, text= 'Logga in:')
center_text.config(font=("Arial", 30, 'bold'))
center_text.grid(padx=220, pady=10)

#Forsta text
def forsta_texten():

    Forsta_text = Label(pencere, text = 'Username:')
    Forsta_text.config(font=("Arial", 10))
    Forsta_text.grid(column=50, row=20)
    Forsta_text.place(x=170, y=77)

#Username yazi bosluk

username1 = tkinter.StringVar(pencere)
password1 = tkinter.StringVar(pencere)
username_alan = Entry(pencere, bd=8,textvariable= username1)
username_alan.grid(padx=110, pady=3)



#Password yazi bosluk

password_alan = Entry(pencere,show='*', bd=8, textvariable=password1)
password_alan.grid(padx=110, pady=3)




if username1 == username:
    print('Username dogru')
elif password1 == password:
    print('Password dogru')
#Andra text
def andra_text():
    Andra_text = Label(pencere, text = 'Password:')
    Andra_text.config(font=("Arial", 10))
    Andra_text.grid(column=50, row=20)
    Andra_text.place(x=170, y=120)



def buton_fonksiyonu():
    if (username1 == username and password1 == password):
        tkinter.messagebox.showinfo(title='Min Konto', message='Successfully logged in to the account!')

    elif (username1 != username) and (password1 != password):
        tkinter.messagebox.showerror(title= 'Min Konto', message='Användarnamnet eller lösenordet är felaktigt!')


#Buton1

def buton1 ():
    buton_forsta = tkinter.Button(text= 'Login',height=1,width=20, command= lambda: buton_fonksiyonu())
    buton_forsta.config(font= ('Arial',10, 'bold'))
    buton_forsta.place(x=200,y=175)

andra_text()
forsta_texten()
buton1()
center_text








# formu çiz


pencere.mainloop()
Sorun su dostum, sen sifreyi Integer olarak belirlemissin, ornegin username="8800" password="8800" diye yapsan calisirdi.
 
@Linuxginar dostum maalesef aynı şeyi username = 'sahil123' ve password = 'sahil123' en az 30 kere denedim.
Bir hata daha var, StringVar degeri almak icin .get() metodunu calistirmalisin.
Screenshot_2022-02-05_00-46-22.png

Python:
import tkinter
from tkinter import *

from tkinter import messagebox

pencere = Tk()

pencere.title("Min Konto")
pencere.geometry("600x400")


#Giris yapma buton fonksiyonu


username = "8800"
password = "8800"



# Center textim


center_text = Label(pencere, text= 'Logga in:')
center_text.config(font=("Arial", 30, 'bold'))
center_text.grid(padx=220, pady=10)

#Forsta text
def forsta_texten():

    Forsta_text = Label(pencere, text = 'Username:')
    Forsta_text.config(font=("Arial", 10))
    Forsta_text.grid(column=50, row=20)
    Forsta_text.place(x=170, y=77)

#Username yazi bosluk

username1 = tkinter.StringVar(pencere)
password1 = tkinter.StringVar(pencere)
username_alan = Entry(pencere, bd=8,textvariable= username1)
username_alan.grid(padx=110, pady=3)



#Password yazi bosluk

password_alan = Entry(pencere,show='*', bd=8, textvariable=password1)
password_alan.grid(padx=110, pady=3)



print(username1.get())
if username1.get() == username:
    print('Username dogru')
elif password1.get() == password:
    print('Password dogru')
#Andra text
def andra_text():
    Andra_text = Label(pencere, text = 'Password:')
    Andra_text.config(font=("Arial", 10))
    Andra_text.grid(column=50, row=20)
    Andra_text.place(x=170, y=120)



def buton_fonksiyonu():
    if (username1.get() == username and password1.get() == password):
        tkinter.messagebox.showinfo(title='Min Konto', message='Successfully logged in to the account!')

    elif (username1.get() != username) and (password1.get() != password):
        tkinter.messagebox.showerror(title= 'Min Konto', message='Användarnamnet eller lösenordet är felaktigt!')


#Buton1

def buton1 ():
    buton_forsta = tkinter.Button(text= 'Login',height=1,width=20, command= lambda: buton_fonksiyonu())
    buton_forsta.config(font= ('Arial',10, 'bold'))
    buton_forsta.place(x=200,y=175)

andra_text()
forsta_texten()
buton1()
center_text








# formu çiz


pencere.mainloop()

Dogru olan kod.
 
Çözüm
Bir hata daha var, stringvar degeri almak icin .get() metodunu calistirmalisin.
Eki Görüntüle 1295621
Python:
import tkinter.
from tkinter import *

from tkinter import messagebox.

pencere = Tk()

pencere.title("Min Konto")
pencere.geometry("600x400")

#Giris yapma buton fonksiyonu.

username = "8800"
password = "8800"

# Center textim.

center_text = Label(pencere, text= 'Logga in:')
center_text.config(font=("Arial", 30, 'bold'))
center_text.grid(padx=220, pady=10)

#Forsta text.
def forsta_texten():

 Forsta_text = Label(pencere, text = 'Username:')
 Forsta_text.config(font=("Arial", 10))
 Forsta_text.grid(column=50, row=20)
 Forsta_text.place(x=170, y=77)

#Username yazi bosluk.

username1 = tkinter.StringVar(pencere)
password1 = tkinter.StringVar(pencere)
username_alan = Entry(pencere, bd=8,textvariable= username1)
username_alan.grid(padx=110, pady=3)

#Password yazi bosluk.

password_alan = Entry(pencere,show='*', bd=8, textvariable=password1)
password_alan.grid(padx=110, pady=3)

print(username1.get())
if username1.get() == username:
 print('Username dogru')
elif password1.get() == password:
 print('Password dogru')
#Andra text.
def andra_text():
 Andra_text = Label(pencere, text = 'Password:')
 Andra_text.config(font=("Arial", 10))
 Andra_text.grid(column=50, row=20)
 Andra_text.place(x=170, y=120)

def buton_fonksiyonu():
 if (username1.get() == username and password1.get() == password):
 tkinter.messagebox.showinfo(title='Min Konto', message='Successfully logged in to the account!')

 elif (username1.get() != username) and (password1.get() != password):
 tkinter.messagebox.showerror(title= 'Min Konto', message='Användarnamnet eller lösenordet är felaktigt!')

#Buton1

def buton1 ():
 buton_forsta = tkinter.Button(text= 'Login',height=1,width=20, command= lambda: buton_fonksiyonu())
 buton_forsta.config(font= ('Arial',10, 'bold'))
 buton_forsta.place(x=200,y=175)

andra_text()
forsta_texten()
buton1()
center_text.

# formu çiz.

pencere.mainloop()

Dogru olan kod.

Bunu mu kastediyorsun dostum?

Kod:
username1 = tkinter.StringVar(pencere)
password1 = tkinter.StringVar(pencere)
 
Bunu mu kastediyorsun dostum?

Kod:
username1 = tkinter.StringVar(pencere)
password1 = tkinter.StringVar(pencere)
Hayir, duzelttigim halini attim.
Screenshot_2022-02-05_00-49-36.png


Ek olarak boyle hatalarda her iki degeri de ekrana yazdirmayi deneyin, unuttugunuz seyleri gormus olursunuz boylece. Guzel bir debugging yolu.
 
@Linuxginar çok teşekkür ederim dostum. Sabahtan beri uğraşıyorum desem inanmazsın. Sonunda hatayı gördüm sayende. Sağ olasın. Yeni konu açıp seni etiketleyeceğim dostum. Enter tuşu ile login butonunu çalıştırmak için ne yazmam gerektiği ile alakalı.
Konu acmana gerek yok hocam.
Python:
import tkinter
from tkinter import *

from tkinter import messagebox

pencere = Tk()

pencere.title("Min Konto")
pencere.geometry("600x400")


#Giris yapma buton fonksiyonu


username = "8800"
password = "8800"



# Center textim


center_text = Label(pencere, text= 'Logga in:')
center_text.config(font=("Arial", 30, 'bold'))
center_text.grid(padx=220, pady=10)

#Forsta text
def forsta_texten():

    Forsta_text = Label(pencere, text = 'Username:')
    Forsta_text.config(font=("Arial", 10))
    Forsta_text.grid(column=50, row=20)
    Forsta_text.place(x=170, y=77)

#Username yazi bosluk

username1 = tkinter.StringVar(pencere)
password1 = tkinter.StringVar(pencere)
username_alan = Entry(pencere, bd=8,textvariable= username1)
username_alan.grid(padx=110, pady=3)



#Password yazi bosluk

password_alan = Entry(pencere,show='*', bd=8, textvariable=password1)
password_alan.grid(padx=110, pady=3)



print(username1.get())
if username1.get() == username:
    print('Username dogru')
elif password1.get() == password:
    print('Password dogru')
#Andra text
def andra_text():
    Andra_text = Label(pencere, text = 'Password:')
    Andra_text.config(font=("Arial", 10))
    Andra_text.grid(column=50, row=20)
    Andra_text.place(x=170, y=120)



def buton_fonksiyonu(foo):
    if (username1.get() == username and password1.get() == password):
        tkinter.messagebox.showinfo(title='Min Konto', message='Successfully logged in to the account!')

    elif (username1.get() != username) and (password1.get() != password):
        tkinter.messagebox.showerror(title= 'Min Konto', message='Användarnamnet eller lösenordet är felaktigt!')

pencere.bind('<Return>', buton_fonksiyonu)

#Buton1

def buton1 ():
    buton_forsta = tkinter.Button(text= 'Login',height=1,width=20, command= lambda: buton_fonksiyonu())
    buton_forsta.config(font= ('Arial',10, 'bold'))
    buton_forsta.place(x=200,y=175)

andra_text()
forsta_texten()
buton1()
center_text








# formu çiz


pencere.mainloop()

pencere.bind('<Return>', buton_fonksiyonu) gibi bir kod ile yapiliyor. Ancak bu bir parametre verdigi icin hataya sebep oluyordu, foo diye parametre ekledim etrafindan dolasmak icin.

Eger bunu istemezseniz o foo parametresini kaldirip pencere.bind('<Return>', buton_fonksiyonu) kismini pencere.bind("<Return>", (lambda event: buton_fonskiyonu())) yapabilirsiniz.
 

Technopat Haberler

Geri
Yukarı