Hei, minulla olisi tällä kertaa tällainen ongelma:
Alla on syöttöruutu, mihin pitäisi syöttää tietoja. Noiden syöttöruutujen määrä riippuu siitä miten paljon niille on tarvetta, minulla on siis laskuri mikä määrittää tuon puolen. Tämähän ei näin toimi, koska näytölle kyllä tulee noita ruutuja, mutta luettavia tietoja on vain yksi "tekstilaatikko". Onko mitenkään mahdollista saada ongelma korjattua esim. tällaisella tavalla, milloin tekstilaatikolla olisi järjestysnumero, tekstilaatikko(laskuri). Suoraan tuo ei ainakaan onnistu.
Kiitos.
tekstilaatikko = Entry(ikkuna, bd =5,width = 10, bg="SpringGreen2")# syöttöruutu tekstilaatikko.grid(row=1+laskuri, column=5)
Teet tekstilaatikkolistan tai taulukon, johon laitat luomasi tekstilaatikot. Yhdessä tekstilaatikkomuuttujassa voi luonnollisesti olla vain yksi tekstilaatikko kerrallaan.
Voisinko pyytää ihan pientä esimerkkiä:-)
Kai nyt yleisesti ottaen osaat Pythonin listoja käyttää, kuten oppaissa neuvotaan. Nyt vain laitat listaan tekstilaatikoita.
tekstilaatikot = [] uusi = Entry(foo) uusi.grid(foo) tekstilaatikot.append(uusi) # tulee tekstilaatikot[0], tekstilaatikot[1] jne.
Hei. Olen koko päivän yrittänyt ymmärtää neuvoasi, mutta en ole tässä onnistunut, vaikka yritys on ollut kova:-)
Hieman vielä kerron tuosta tarpeestani. Osaan jo tehdä Entryjä, joihin voin kirjoittaa vaikka tekstiä ja noutaa näitä tietoja käyttäen get komentoa. Homma toimii hienosti ja voin sitten tallettaa näitä tietoja tiedostoihin. Jos kysymyksessä olisi vaikka viiden eri tiedon tallettaminen syöttökentistä, niin tekisin näitä alla olevia tekstilaatikoita tarvittavan määrän ja siinä se. Kysymykseni oli oikeastaan se, että onko mahdollista tehdä alla olevaa ohjelmaa, jossa tuo tekstilaatikko saisi saisi yhden merkin lisää ja näin ollen get komennolla voisin noutaa noita järjestyksessä. Tuo ei siis toimi, mutta miksi näin ei tapahdu, sitä en tiedä?
Kiitos kärsivällisyydestä:-)
for laskuri in range(3): tekstilaatikko(laskuri) = Entry(ikkuna, bd =5,width = 10, bg="SpringGreen2")# syöttöruutu tekstilaatikko.grid(row=1+laskuri, column=5)
Toivomasi tekstilaatikoiden käsittely ei mitenkään eroa siitä, että haluaisit johonkin muuttujaan vaikka viisi lukua tai viisi sanaa. Ratkaisu on lista, kuten jo sanoin. Oletko lukenut opasta listoista?
from tkinter import * ikkuna = Tk() tekstilaatikot = [] for laskuri in range(3): uusi = Entry(ikkuna) uusi.grid(row = laskuri) tekstilaatikot.append(uusi) tekstilaatikot[0].insert(0, "foo") tekstilaatikot[1].insert(0, "bar") tekstilaatikot[2].insert(0, "baz") ikkuna.mainloop()
Nyt taisin ymmärtää, voi kiitos, olet tosi fiksu:-)
Aihe on jo aika vanha, joten et voi enää vastata siihen.