Python Tkinter sqlite yardım arkadaşlar

Kodunuzu ctrl e içinde atarmısınız

btnkayıtol buttonuna bastığımda yeni bir pencere açmak istiyorum

import tkinter as tk
from tkinter import messagebox
import sqlite3
pencere = tk.Tk()
pencere.title("Giriş Ekranı")
pencere.state("zoomed")
pencere.configure(background="white")
baglanti = sqlite3.connect("kayıtekranı.db.")
verinere = baglanti.cursor()
baglanti.commit()



etiket1 = tk.Label(text='Kullanıcı Adınız?', background="white", foreground="black")
etiket1.place(x=610, y=350)
etiket2 = tk.Label(text='Şifre?' , background="white", foreground="black")
etiket2.place(x=630, y=400)
tb_aden = tk.Entry()
tb_aden.place(x=715, y=365)
tb_aden1 = tk.Entry()
tb_aden1.place(x=715, y=415)


btngiris = tk.Button(text='Giriş Yap' , background="black", foreground="white")
btngiris.place(x=850,y=369)

btnkayıt = tk.Button(text="Kayıt Ol", background="black", foreground="white")
btnkayıt.place(x=737,y=435)

btnlistbox = tk.Button(text="Listboxa aktar")
btnlistbox.place(x=1400, y=735)
list1=tk.Listbox()
list1.place(x=1375,y=550)

yeniden tk inter penceresi açmak çok mantıksız. tkinter de frameler var. aynı pencere içinde sayfa değiştirebilirsiniz. kivy kullandıysanız ScreenManager gibi.

import tkinter as tk
from tkinter import ttk

LARGE_FONT = ("Verdana 12")
NORM_FONT = "Verdana 10"
SMALL_FONT = ("Verdana 8")
ERROR_404 = "Error 404 : Page not found !"

class sjabloon(tk.Tk):
    def __init__(self, *args, **kwargs):
        #make window        
        tk.Tk.__init__(self, *args, **kwargs)
        self.geometry("600x600+10+10")

        #make top frame
        self.frame_header = tk.Frame(self, background='black', width=600, height=50)
        self.frame_header.grid(column=0, row=0 , columnspan= 10)

        #make body frame
        container = tk.Frame(self, width=600, height=400)
        container.grid(column=0, row=1 , columnspan= 10)

        #list of Pages
        self.frames = {}

        #everytime you create a "Page", you add it there
        for F in (StartPage, HomePage):
            frame = F(container, self)
            self.frames[F] = frame     
            frame.grid(row=1, column = 0, sticky="nsew", columnspan= 10)

        self.show_page("StartPage")


        #make body footer
        self.frame_footer = tk.Frame(self, background='yellow', width=600, height=50)
        self.frame_footer.grid(column=0, row=3 , columnspan= 10)



    def show_page(self, page_name):
        """
            let us use the NAME of the class to display(the function show_frame
            use directly the class).
            when we use the classe name, we can put our classes in defferent
            files
        """
        for F in self.frames:
            if F.__name__ == page_name:
                self.show_frame(F)
                return
        print(ERROR_404)


    def show_frame(self, cont):
        """raise to the front the frame we want

            :param cont: the frame
        """
        frame = self.frames[cont]
        frame.tkraise()



class HomePage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        #button1 select
        tk.Label(self, text="Select:").grid(column=0, row=2, stick='W')
        self.button1 = tk.Button(self, text="Select")
        self.button1.grid(row=2, column=5, stick='W', padx=(50,0))
        #button1 select
        tk.Label(self, text="Select:").grid(column=0, row=3, stick='W')
        self.button2 = tk.Button(self, text="Select")
        self.button2.grid(row=4, column=5, stick='W', padx=(50,0))
        #button submit
        self.submit = tk.Button(self, text="Start")
        self.submit.grid(row=10, column=9, stick='W')


class StartPage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        label = tk.Label(self, text="""ALPHA application.
        use at your own risk. There is no promise
        of warranty""", font=LARGE_FONT)
        label.pack(pady=10, padx=10)

        button1 = ttk.Button(self, text="Agree",
                            command=lambda: controller.show_page("HomePage"))
        button1.pack()

        button2 = ttk.Button(self, text="Disagree",
                            command=controller.destroy)
        button2.pack()



if __name__ == "__main__":
    sjabloon = sjabloon()
    sjabloon.mainloop()

bunu şuanki attığım koda nasıl uyarlayabilirdim bu arada bunu bilmiyordum çok teşekkürler

Frame kullanacaksın başka bi yolu varsa ben bilmiyorum. frame içinde class bilmen gerekiyor diye düşünüyorum. tkinter, html gibi çok ilkel. bence yol yakınken bırak. python yazmak istiyorsan kivy kullanabilirsin. hem kolay hemde çok fazla özelliği var. bu ekran değiştirme olayı acaip kolay. hem ister apk yap telefonda kullan istersen bilgisayarda. tkinter kafayı yedirdir :smiley:

kodu biraz temizledim. alta start page var onu içine ilk sayfadaki kodları yapıştır. home page var onada 2. sayfayı yapıştır. olması lazım.

import tkinter as tk
from tkinter import ttk

LARGE_FONT = ("Verdana 12")
NORM_FONT = "Verdana 10"
SMALL_FONT = ("Verdana 8")
ERROR_404 = "Error 404 : Page not found !"

class sjabloon(tk.Tk):
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)

        #make top frame
        self.frame_header = tk.Frame(self, background='black', width=600, height=50)
        self.frame_header.grid(column=0, row=0 , columnspan= 10)

        #make body frame
        container = tk.Frame(self, width=600, height=400)
        container.grid(column=0, row=1 , columnspan= 10)

        #list of Pages
        self.frames = {}

        #everytime you create a "Page", you add it there
        for F in (StartPage, HomePage):
            frame = F(container, self)
            self.frames[F] = frame     
            frame.grid(row=1, column = 0, sticky="nsew", columnspan= 10)

        self.show_page("StartPage")

        #make body footer
        self.frame_footer = tk.Frame(self, background='yellow', width=600, height=50)
        self.frame_footer.grid(column=0, row=3 , columnspan= 10)

    def show_page(self, page_name):

        for F in self.frames:
            if F.__name__ == page_name:
                self.show_frame(F)
                return
        print(ERROR_404)


    def show_frame(self, cont):
        frame = self.frames[cont]
        frame.tkraise()



class HomePage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        button1 = ttk.Button(self, text="ikinci sayfa",command=lambda: controller.show_page("StartPage"))
        button1.pack()

        button2 = ttk.Button(self, text="Disagree",command=controller.destroy)
        button2.pack()



class StartPage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)


        button1 = ttk.Button(self, text="birinci sayfa",command=lambda: controller.show_page("HomePage"))
        button1.pack()

        button2 = ttk.Button(self, text="Disagree",command=controller.destroy)
        button2.pack()



if __name__ == "__main__":
    sjabloon = sjabloon()
    sjabloon.mainloop()

html ye geçicem zaten son olarak kayıt olma sistemini yapıp alt yapıyı oturtmaya çalışıyorum hocam

Abi dilenci değilimde çözüme bassana ya profilde gözüksün az

Bende PyQt kullanıyorumda kivy le karşılaştırıldığında nasıl geçmeli miyim pek bi farkı yoksa özellik açısından geçmiyim baya öğrendim çünkü

valla pyqt kullanmadım hiç. yaptığın işe göre değişir. ben mobil ile uğraşıyorum. o yüzden kivy ve kivymd kullandım bi dönem. eğer mobil uygulama oyun vs yaparım diyosan en iyisi kivy ve kivymd.

bi yerden sonra dilin bi önemi kalmıyo. uygulama yapacaksın diyelim. hangi dil daha mantıklı olur acaba diye düşünüyosun. eğer diller yeterli değilse yeniden dil yazılır :smiley: bu artık nirvanası :smiley:

Tamam mobilde çalışmayı pek düşünmüyorum. PyQt ile devam edeyim ben

hocam bunu beceremedimde
burdaki yenipencereyi niye almıyor defin içindekini

`import tkinter as tk
from tkinter import messagebox
import sqlite3
pencere = tk.Tk()
pencere.title("Giriş Ekranı")
pencere.state("zoomed")
pencere.configure(background="white")
baglanti = sqlite3.connect("kayıtekranı.db.")
verinere = baglanti.cursor()
baglanti.commit()



etiket1 = tk.Label(text='Kullanıcı Adınız?', background="white", foreground="black")
etiket1.place(x=610, y=350)
etiket2 = tk.Label(text='Şifre?' , background="white", foreground="black")
etiket2.place(x=630, y=400)
tb_aden = tk.Entry()
tb_aden.place(x=715, y=365)
tb_aden1 = tk.Entry()
tb_aden1.place(x=715, y=415)




btnlistbox = tk.Button(text="Listboxa aktar")
btnlistbox.place(x=1400, y=735)
list1=tk.Listbox()
list1.place(x=1375,y=550)

listbox = tk.Listbox()


def giris():
    if tb_aden.get() == "":
       messagebox.showerror("Hata Adı", "Kullanıcı Adı Boş Bırakılamaz.")
    else:
        if tb_aden1.get() =="":
            messagebox.showerror("Hata Şifre","Şifre boş bırakılamaz")
        else:
            if (tb_aden.get() == str("123") and tb_aden1.get() == str("123")):
                messagebox.showinfo("Başlık", "Giriş Başarılı",)
                pencere.destroy()
                yenipencere()
            else:
                messagebox.showerror("Hata Başlık", "Hatalı Giriş")

def kayit():
       pencere.destroy()
       yenipencere()


btngiris = tk.Button(text='Giriş Yap' , command=giris, background="black", foreground="white")
btngiris.place(x=850,y=369)

btnkayıt = tk.Button(text="Kayıt Ol", command=kayit, background="black", foreground="white")
btnkayıt.place(x=737,y=435)

pencere.mainloop()
`