Witam wszystkich.
Mam problem z pewną pętlą w Pythonie, a mianowicie:
def PodajPunkty():
ile = bufor_ile.get()
i=0
bufor = ile
while (ile > i):
etykieta_x = Label(okno, text='Podaj x').pack()
x = Entry(okno, textvariable=bufor_x).pack()
etykieta_y = Label(okno, text='Podaj y').pack()
y = Entry(okno, textvariable=bufor_y).pack()
Button(okno, text='Dodaj punkt', command=DodajPunkty(x,y), fg='white', bg='blue').pack()
# wydaje mi się, że w tym miejscu powinno nastąpić zatrzymanie, aby program czekał na podanie pierwszego punktu i na kliknięcie, a nie całość od razu wyświetlał
i=i+1
Chodzi o to, że jeśli podajemy 4 punkty, to od razu się wyświetlają wszystkie do wpisania, a chciałbym, aby pojawiły się współrzędne do x oraz y pierwszego punktu i póki nie klikniemy przycisku Dodaj Punkt nie mają się pojawić kolejne. Podsumowując mam kłopot z zatrzymaniem pętli, póki nie klikniemy przycisku.
Dla ułatwienia dodam również mój cały aktualny kod:
import sys
import os
from tkinter import *
import math
def RestartProgram():
python = sys.executable
os.execl(python, python, * sys.argv)
def RysujFunkcje():
Label(okno, text='aaaaaa').pack()
def DodajPunkty(punkt_x,punkt_y):
punkt_x = bufor_x.get()
punkt_y = bufor_y.get()
tablica_x.append(punkt_x)
tablica_y.append(punkt_y)
def PodajPunkty():
ile = bufor_ile.get()
i=0
bufor = ile
while (ile > i):
etykieta_x = Label(okno, text='Podaj x').pack()
x = Entry(okno, textvariable=bufor_x).pack()
etykieta_y = Label(okno, text='Podaj y').pack()
y = Entry(okno, textvariable=bufor_y).pack()
Button(okno, text='Dodaj punkt', command=DodajPunkty(x,y), fg='white', bg='blue').pack()
i=i+1
okno = Tk()
bufor_ile = IntVar()
bufor_x = IntVar()
bufor_y = IntVar()
tablica_x=[10]
tablica_y=[10]
okno.geometry('450x450')
okno.title('Interpolacja')
etykieta_ile = Label(okno, text='Ile punktow?').pack()
ile = Entry(okno, textvariable=bufor_ile).pack()
Button(okno, text='Podaj punkty', command=PodajPunkty, fg='white', bg='blue').pack()
Button(okno, text='Rysuj funkcje', command=RysujFunkcje, fg='white', bg='blue').pack()
Button(okno, text='Restart', command=RestartProgram, fg='white', bg='blue').pack()
okno.mainloop()
Proszę o wyrozumiałość, gdyż raczkuję w Pythonie ;)
Dziękuję i pozdrawiam.