Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Python / Zope

Cevapla
 
LinkBack Seçenekler
Eski 13/02/2008, 13:07   #1 (permalink)
Üye
 
Üyelik Tarihi: 03/2007
Mesaj: 15
Varsayılan Parametreli Fonksiyon Hakkında

Merhabalar;

Aşağıdaki Python kodu kendiyle aynı dizindeki bir (.gif) resimini açıp üzerine basit bir işaret çizmesi gerekiyor. Isaretle(x, y) fonksiyonunu parametresiz olarak yazıp, x ve y değerlerini fonksiyon içinde belirtince program gayet düzgün çalışıyor ama parametreleri dışardan aldırınca sorun çıkıyor. Sorunun nedeni ve çözümü hakkında yardımcı olabilirseniz çok sevineceğim...

Kod:
from Tkinter import *
from PIL import Image, ImageDraw

def ResmiGetir():
    global resim
    global resim1
    global can
    resiminIsmi = girisKutusu.get()
    resim1 = PhotoImage(file = resiminIsmi)
    resim = Image.open(resiminIsmi)
    resim = resim.convert("RGB")
    can = Canvas(root, width = resim.size[0] , height = resim.size[1], bg = 'white')
    can.pack()
    can.create_image(resim.size[0]/2,resim.size[1]/2, image = resim1)

def Isaretle(x, y): #resimin işaretliyen fonksion
    global resimCikti
    ciz = ImageDraw.Draw(resim) 
    ciz.line( (0, resim.size[1], resim.size[0], 0), fill=134)
    ciz.ellipse((x-2, y-2, x+2, y+2), fill = 1)
    ciz.line((x-5, y, x+5, y), fill = 1)
    ciz.line((x, y-5, x, y+5), fill = 1)
    del ciz
    resim.save('cikti.gif')
    resimCikti = PhotoImage(file = 'cikti.gif')
    can.create_image(resim.size[0]/2,resim.size[1]/2, image = resimCikti)
    

root = Tk()
root.geometry('600x600+270+50') #Ekranin büyüklügü, ve nerede belirecegi


aciklama = Label(root, text = 'Resimin ismini uzantisiyla giriniz (onerilen format gif)')
girisKutusu = Entry(root, width = 35)
buton = Button(root, text = 'Tamam', command = ResmiGetir)
buton2 = Button(root, text = 'Isaretle', command = Isaretle(x=22, y=33))

aciklama.pack() #gorunur yap
girisKutusu.pack()
buton.pack()
buton2.pack()

root.mainloop() #ana ekrani görünür yap
tremo hatta değil   Alıntı Yaparak Yanıtla
Eski 17/02/2008, 01:06   #2 (permalink)
Üye
 
Üyelik Tarihi: 03/2007
Mesaj: 15
Varsayılan

Sorunu araştırarak deneme yanılma yöntemiyle çözdüm fakat mantığını halen pek anlayamadım... Yinede benimle aynı sorunu tecübe eden olursa diye:

Kod:
IsaretleArguman = lambda: Isaretle(arguman1, arguman2)
    IsaretleArguman()
lambadayla fonksiyonun argümanlı halini başka bir fonksiyona atayıp, atanan fonksiyonu çağırmak sorunu giderdi...
tremo hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
Fonksiyon ve Include Hakkında Bir Soru php_micro PHP 3 04/01/2008 22:00
parametreli order by txgfrm Veritabanları & SQL 6 18/06/2007 15:58
SqlDataSource'de parametreli arama işlemi sorunu writeLine ASP 2 09/06/2007 21:49
Sql injection ile ilgili fonksiyon hakkında Sevimsiz ASP 2 14/03/2007 00:15
parametreli sorgu yaparken hata!! mehmetozkaya Veritabanları & SQL 2 20/02/2006 22:50


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 06:31.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net