Zatrzymanie pętli póki nie zatwierdzimy przyciskiem.

0

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.

0

Dodaj w pętli ifa który będzie sprawdzadź czy przycisk został wciśnięty a jak tak to wykona się reszta kodu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1