Python tkinter sqlite3 ile 3 tane frame listboxlarına mouse ile ekleme yapmak

3 tane tkinter frame i kurdum sqlite3 ile data.db dosyasına bağlandım. Yapmak istediğim tam olarak şu NOTLAR frameine ekleme yapıcam vize ve final elle girilecek ogrenci numarasını Ogrenciler listboxundan mouse ile bir öğrenci seçicem Dersler listboxundan da yine mouse ile bir tane ders seçicem vize finali elle girdikten sonra NOTLARdaki ekle butonuna bastığımda listboxta 4 deger gozukucek bunu nasıl yapabilirim ?

KAYNAK KODLARI LAZIM OLURSA ATABILIRIM

Su cumleyi 5 defa okudum. Ucuncu “ogrenci” kelimesine dogru beynim takip etmeyi birakiyor.

Forumda baya Tk’ci var. Anlayabilseler cozerler, eminim.

Tamam, bagirmana gerek yok :frowning:

1 Beğeni

Aşağıdaki kodları bir inceleyin isterseniz. Kendi kodlarınıza göre düzenlersiniz artık. Listboxlardaki satır verisine 2 kere tıklamayı unutmayın lütfen.

#!/usr/bin/python3.8
# -*- coding: utf-8 -*-

import tkinter as tk


def create_widgets(master, titles: list):
    widgets = {}
    for title in titles:
        frame = tk.Frame(master=master)
        frame.pack(side="left")
        label = tk.Label(master=frame, text=title, font="Arial 14 bold")
        label.pack()
        listbox = tk.Listbox(master=frame)
        listbox.pack()
        widgets[title] = listbox
    return widgets
    
    
def command(widget, secim):
    widget.insert(len(widget.get("0", "end")), ", ".join(secim.values())) 
    

def func(k, v, secim):
    if k == "Öğrenciler":
        secim["öğrenci"] = v.selection_get()
    elif k == "Dersler":
        secim["ders"] = v.selection_get()

        

def bind(k, v, secim):
    v.bind(
        sequence="<Double-Button-1>", 
        func=lambda event: func(k=k, v=v, secim=secim)
    )


def main():
    root = tk.Tk()
    titles = ["Öğrenciler", "Dersler", "Notlar"]
    frame = tk.Frame(master=root)
    frame.pack()
    widgets = create_widgets(master=frame, titles=titles)
    secim = {"öğrenci": "", "ders": ""}
    
    # Öğrenciler listboxuna temsili öğrenciler ekleyelim.
    for index, i in enumerate(["Ali", "Veli"]):
        widgets["Öğrenciler"].insert(index, i)
        
    # Dersler listboxuna temsili dersler ekleyelim.
    for index, i in enumerate(["Python", "Java"]):
        widgets["Dersler"].insert(index, i)
        
    for k, v in widgets.items():
        if k != "Notlar":
            bind(k=k, v=v, secim=secim)

    button = tk.Button(
        master=root, 
        text="Test", 
        command=lambda: command(widget=widgets["Notlar"], secim=secim)
    )
    button.pack()
    
    root.mainloop()
    
    
main()

Merhaba buna benzer bir örnek yapmaya çalışıyorum ancak bazı kısımları yapadım. Kaynak kodlarını caparmert1999 gmail hesabına mail atabilirseniz çok iyi olur veya github linkini paylaşabilirseniz @ofarukcan