Весь код — билеты в кино (в процессе)

#python #tkinter

#python #tkinter

Вопрос:

Это мой полный код (пока). Моя база данных «biografer_test.db» содержит: название кинотеатра, общее количество мест, цену для взрослых, цену для пожилых и цену для детей. В настоящее время в нем 3 кинотеатра, но его можно изменить. Моя проблема в том, что сохраняется и печатается только последняя запись.

название кинотеатра места для взрослых старший Для детей
Sergel 270 140 130 100
Сага 250 130 115 95
Содер 290 135 120 105
 root = Tk()
root.geometry("400x400")
root.title("Stockholmsbiografer")
import sqlite3 
conn = sqlite3.connect("biografer_test.db")
c = conn.cursor()


class Huvudmeny:
    
    meny_label = Label(root, text="Välkommen till en ny arbetsdag! n vänligen välj nedan vad du vill göra")
    meny_label.pack()

    def __init__(self, master):
        inramning = Frame(master)
        inramning.pack()
    
        self.alla_biograferknapp= Button(master, text="Välj alla biografer", command=self.allabior)
        self.alla_biograferknapp.pack()
    
        self.avslutaknapp = Button(master, text="Avsluta", command=root.destroy, fg="red")
        self.avslutaknapp.pack()

    
    def allabior(self):
        fonster4=Toplevel()
        fonster4.title("Biljettförsäljning för ALLA biografer.")
        fonster4.geometry("350x200")
        inforuta = Label(fonster4, text="Vänligen skriv in info om alla biografer nedan.")
        inforuta.pack()

        bio1 = [] 

        
        def valj_biograf(fonster, person_typ, text_variabel):
            
            Label(fönster, text=person_typ).pack()
            salda = Entry(fönster, textvariable=text_variabel)
            salda.pack()
            return salda

def skriva_info():
    global bio1

    
    myLabel = Label(fönster4, text=salda.get()).pack()
anslut = sqlite3.connect('biografer_test.db')
c = anslut.cursor()
listvarden = c.execute('SELECT * FROM biografer')
biografnamn = c.fetchall()

BIOGRAFVAL = []
PLATSER = []
#VUXENPRIS = []
#PENSIONÄRSPRIS = []
#BARNPRIS = []

for row in biografnamn:
    biograf = row[0]
    antal_platser = row[1]
    #vpris = row[2]
    #ppris = row[3]
    #bpris = row[4]
    BIOGRAFVAL.append(biograf)
    PLATSER.append(antal_platser)
    #VUXENPRIS.append(vpris)
    #PENSIONÄRSPRIS.append(ppris)
    #BARNPRIS.append(bpris)



i = 0
for elements in BIOGRAFVAL:
    vuxen = StringVar()
    pensionär = StringVar()
    barn = StringVar()

    Label(fonster4, text= BIOGRAFVAL[i]).pack()
    Label(fonster4, text="Skriv in antal biljetter av varje sort du vill köpa").pack()
    Label(fonster4, text="Max antal platser för "   BIOGRAFVAL[i]   " är "   str(PLATSER[i])).pack()
    
    i  =1

    personer = [('vuxen',vuxen),('pensionar', pensionar), ('barn',barn)]

    for p in personer:
        salda1 = välj_biograf(fönster4, p[0]   "biljett", p[1].get())
        salda1.pack()

    

Button(fonster4, text="fortsätt", command=lambda: info()).pack()




def info():
            fonster5=Toplevel()
            fonster5.title("Biljettförsäljning för EN biograf.")
            fonster5.geometry("350x200")

            for p in personer:
                bio1.append(salda1.get())
                print(bio1)
 

Комментарии:

1. @CoolCloud вот весь код

2. Вы уверены, что знаете, как использовать классы? Я бы рекомендовал сделать это без занятий, если вы не знакомы с ООП. Возможно, также было бы лучше включить в него фотографии ваших проблем и так далее.

3. @CoolCloud У меня также есть опция в моем главном меню (класс Huvudmeny) для ОДНОГО кинотеатра. Эта часть работает так, как я хочу, и поэтому я ее не включил. Я полагаю, поскольку это два разных параметра меню, лучше поместить их в класс?

4. @CoolCloud если вы хотите, я могу отправить вместо этого всю свою программу.

5. @CoolCloud. Теперь он сохраняет последние три входных данных!! спасибо за вашу помощь. Я думаю, что я мог бы понять, как это сделать сейчас !! 🙂