Merhaba, pydroid 3 ile telefonumda Python program yazmaya çalışıyorum. Bir ana sayfa olusturabildim. Bu ana sayfada on numara, şans topu, sayısal loto butonları var. Mesela “on numara” butonuna tıkladığımda on numara fonksiyonuna gönderiyorum burada yeni bir pencere oluşturuyorum ve “kaç kolon oynama istersin” label ve entry ile “oyna” butonu ve “çıkış” butonu koyuyorum. Entry içine rakam yazıp samples ve random ile entry içine girdiğim sayı kadar kolon oynamak istiyorum ve buradan dönen liste yi aynı pencerede yeni bir label ile göstermek istiyorum.
Sıkıntım oynayacağım kolon sayısını geriye döndürememek. Bu konuda yardımcı olursanız çok iyi olur.
Not : Python dilini yeni öğreniyorum. Öğrenmek için bir proje düşünerek başlıyorum. Terminal üzerinde bu düşüncemi gerçekleştirdim sıra görsele geldi tkinter de takıldım.
Buraya kod nasıl eklenir bilmiyorum
from tkinter import*
import random
import datetime
master = Tk()
def onOyna():
def onGonder(giris):
if giris != "":
l6 = Label(onScreen, text = giris).pack()
else:
pass
an = datetime.datetime.now()
simdi = datetime.datetime.strftime(an, '%x %X')
master.destroy
onScreen = Tk()
onScreen.geometry('500x750')
onScreen.title('On Numara')
x = ""
l1 = Label(onScreen, text = simdi).pack()
l2 = Label(onScreen).pack()
l3 = Label(onScreen, text = "Kaç kolon oynamak istersiniz ?").pack()
e1 = Entry(onScreen, width = 5).pack()
l4 = Label(onScreen).pack()
b1 = Button(onScreen, text = "OYNA", command = onGonder(x)).pack()
l5 = Label(onScreen).pack()
b2 = Button(onScreen, text = " Çıkış", command = onScreen.destroy).pack()
onScreen.mainloop()
def sansOyna():
pass
def superOyna():
pass
def sayisalOyna():
pass
l1 = Label(master, text = "Oynamak istediğiniz oyunu seçin").pack()
l2 =Label(master).pack()
b1 = Button(master, text = "ON NUMARA", command = onOyna, width = 25).pack()
l3 = Label(master).pack()
b2 = Button(master, text = "ŞANS TOPU", command = sansOyna, width = 25).pack()
l4 = Label(master).pack()
b3 = Button(master, text = "SÜPER LOTO", command = superOyna, width = 25).pack()
l5 = Label(master).pack()
b4 = Button(master, text = " SAYISAL LOTO", command = sayisalOyna, width = 25).pack()
l6 = Label(master).pack()
b5 = Button(master, text = "ÇIKIŞ", width = 25, command = master.destroy).pack()
master.mainloop()
Bildiğim kadarıyla pydroid üzerinde tkinter kullanamıyoruz.
Pardon qpython3 ile karıştırmışım. 
Merhaba, aşağıdaki kodları, size bir fikir vermesi için inceleyebilirsiniz.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from tkinter import*
import random
import datetime
master = Tk()
def onGonder(widget):
a = [[random.randint(0, 80) for j in range(10)] for i in range(int(widget.get()))]
print(a)
return a
def onOyna():
an = datetime.datetime.now()
simdi = datetime.datetime.strftime(an, '%x %X')
master.destroy
onScreen = Tk()
onScreen.geometry('500x750')
onScreen.title('On Numara')
x = ""
l1 = Label(onScreen, text = simdi).pack()
l2 = Label(onScreen).pack()
l3 = Label(onScreen, text = "Kaç kolon oynamak istersiniz ?").pack()
e1 = Entry(onScreen, width = 5)
e1.pack()
l4 = Label(onScreen).pack()
b1 = Button(onScreen, text = "OYNA", command = lambda: onGonder(e1))
b1.pack()
l5 = Label(onScreen).pack()
b2 = Button(onScreen, text = " Çıkış", command = onScreen.destroy)
b2.pack()
onScreen.mainloop()
def sansOyna():
pass
def superOyna():
pass
def sayisalOyna():
pass
l1 = Label(master, text = "Oynamak istediğiniz oyunu seçin").pack()
l2 =Label(master).pack()
b1 = Button(master, text = "ON NUMARA", command = onOyna, width = 25)
b1.pack()
l3 = Label(master).pack()
b2 = Button(master, text = "ŞANS TOPU", command = sansOyna, width = 25)
b2.pack()
l4 = Label(master).pack()
b3 = Button(master, text = "SÜPER LOTO", command = superOyna, width = 25)
b3.pack()
l5 = Label(master).pack()
b4 = Button(master, text = " SAYISAL LOTO", command = sayisalOyna, width = 25)
b4.pack()
l6 = Label(master).pack()
b5 = Button(master, text = "ÇIKIŞ", width = 25, command = master.destroy)
b5.pack()
master.mainloop()
Buradaki ‘lambda’ olayını tam olarak anlayamadım. Daha önce de bir sorumda çözümü ‘lambda’ ile yine siz çözmüştünüz.
Acaba fonksiyon içinden fonksiyon çağırmak ile mi ilgili?
button
'un command
parametresine fonksiyonu fonksiyon()
şeklinde yazarsanız, düğmeye basmadan fonksiyon aktif edilir. Eğer fonksiyonun aldığı bir parametre varsa, bu kez lambda: fonksiyon(onGonder)
şeklinde fonksiyonu çağırmalısınız. lambda
da bir fonksiyondur. Dediğiniz gibi bu fonksiyonla başka bir fonksiyonu çağırmış oluyoruz.
1 Beğeni
o gönder fonksiyonunda return a ile değeri geri gonderbiliyoruz galiba. Peki dönen değeri nasıl alabilirim?
Mesela x = onGonder(y) olarak buttonun hemen alt satırına yazsam dönen değeri alabilirmiyim?
Tabi alabilirsiniz. def
fonksiyonlarında return
ifadesi varsa, o fonksiyonu sizin gösterdiğiniz gibi x = onGonder(y)
şeklinde çağırırsanız, return
edilen değer, değişkenin değeri olur.
1 Beğeni
Rica ederim iyi çalışmalar.
1 Beğeni