python dan anlamam hocam ama hatayı deneme yanılma yntemi ile bulabilirsin. anladığım kadarıyla for a kadar geliyor. for un içindeki kodları commente al. sonra x değerini console/output/trace artık ne varsa oraya yazdır. bak bakalım for dngüsü sıkıntısız çalışıyor mu? eğer problem var ise for un değerini değiştir sayıyı küçültüp dene, olmadı for u kaldır ve kodunu yle yaz.. o da olmadı üst taraftaki kodlara bak. eğer for sorunsuz çalıştıysa for un içindeki kodları satır satır yaz. mesela 4 satır var for un içinde, ilk nce 1. satırın commentini kaldır ve çalıştır, kilitlenme olmuyorsa 2. satırı kaldır ve dene.. bu şekilde hangi satır kilitlenmeye sebep oluyorsa anlarsın. eğer bir exception türetseydi except bloğunda yakalanırdı. normalde gui kilitlenmesinin sebebi ise ui ye bağlı olan threadde bir işlem yaptığında ui kilitlenir. ama işlem bitince yine çalışır. bunun için farklı bir thread yaratılıp, işlemler o thread üzerinden gerçekleşir. sen gui nin kilitlendiğini syledin. 100 000 sayma işleminin bitmesini bekliyor olabilir. o yüzden yukarda dediğim gibi sayıyı küçült. mesela 10 yap. eğer sayım 10 da bitip gui kilitlenmesi bitiyorsa thread ayrılmamış demektir. farklı bir threadde bu işlemi yapman gerekiyor demektir. for dngüsü 100 bine kadar sayarken sen kilitlendi diyorsun ve kapatmaya çalışıyorsun, dngünün bitmesini beklemiyorsun da olabilir.. neden windowsta byle linux da byle dersen bilmiyorum, ncelikle sorunu tespit edelim. ondan sonra açıklama yapmaya çalışırız Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

tamam hocam senin dediklerinden sonra sorunu buldum sanırım. invalidate yapmak gerekiyor kontrolü.. yani yenilenmesi gerekiyor ve araştırdım baktım aynen yleymiş :)) from Tkinter import import win32com. client Scope = win32com. client. dynamic. Dispatch root=Tk label = Label label. grid(row=0, sticky=W) def update_label : label. config label. after(1000, update_label) label. after(1000, update_label) mesela bu kod her 1000 ms(1 sn) de bir yenileniyor.. bunu kullanabilirsin dngünde Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

python dan anlamam hocam ama hatayı deneme yanılma yntemi ile bulabilirsin. anladığım kadarıyla for a kadar geliyor. for un içindeki kodları commente al. sonra x değerini console/output/trace artık ne varsa oraya yazdır. bak bakalım for dngüsü sıkıntısız çalışıyor mu? eğer problem var ise for un değerini değiştir sayıyı küçültüp dene, olmadı for u kaldır ve kodunu yle yaz.. o da olmadı üst taraftaki kodlara bak. eğer for sorunsuz çalıştıysa for un içindeki kodları satır satır yaz. mesela 4 satır var for un içinde, ilk nce 1. satırın commentini kaldır ve çalıştır, kilitlenme olmuyorsa 2. satırı kaldır ve dene.. bu şekilde hangi satır kilitlenmeye sebep oluyorsa anlarsın. eğer bir exception türetseydi except bloğunda yakalanırdı. normalde gui kilitlenmesinin sebebi ise ui ye bağlı olan threadde bir işlem yaptığında ui kilitlenir. ama işlem bitince yine çalışır. bunun için farklı bir thread yaratılıp, işlemler o thread üzerinden gerçekleşir. sen gui nin kilitlendiğini syledin. 100 000 sayma işleminin bitmesini bekliyor olabilir. o yüzden yukarda dediğim gibi sayıyı küçült. mesela 10 yap. eğer sayım 10 da bitip gui kilitlenmesi bitiyorsa thread ayrılmamış demektir. farklı bir threadde bu işlemi yapman gerekiyor demektir. for dngüsü 100 bine kadar sayarken sen kilitlendi diyorsun ve kapatmaya çalışıyorsun, dngünün bitmesini beklemiyorsun da olabilir.. neden windowsta byle linux da byle dersen bilmiyorum, ncelikle sorunu tespit edelim. ondan sonra açıklama yapmaya çalışırız hocam dediklerini denedim, sayının büyüklüğüyle ilgisi olmadığını grdüm. Thread sorunsuz çalıştı ve bitti mesajını terminal ekranında grmeme rağmen GUI'deki label hep = "1" :) evet python bilen arkadaşlardan yardım bekliyorum.

uğraştığın için teşekkür ederim hocam ama ben WxPython GUI library kullanıyorum muhtemelen yazdığın onda olmaz ama bi deniyim Tkinter dediği python'un kendi library'si ve pek fazla bileşen yok içinde

buralardaki değişik kod biçimlerini inceleyebilirsin http://stackoverflow.com/questions/2603169/python-tkinter-update-label-from-variable http://stackoverflow.com/questions/1918005/making-python-tkinter-label-widget-update/1918054#1918054 Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

anladım hocam o problem değil. ben mantığını anlatmaya çalıştım. yani label i yeniletmen gerek yoksa ilk halini grüyormuşsun python da. sorun bundan kaynaklıymış. kullandığın ide için kod bakabilirsin. Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

anladım hocam o problem değil. ben mantığını anlatmaya çalıştım. yani label i yeniletmen gerek yoksa ilk halini grüyormuşsun python da. sorun bundan kaynaklıymış. kullandığın ide için kod bakabilirsin. neyse en azından neye odaklanmam gerektiğini anladım teşekkürler. SetLabel metodu varmış onu kullandım gene 1de tıkanıyor veya direk son rakamı gsteriyor. neyse bulursam çzümünü yazacam buraya

sorunumu thread yerine timer kullanarak çzdüm ) # - - coding: utf-8 - - import threading import wx import time class MyFrame1 : def init : wx. Frame. init ( self, parent, id = wx. ID_ANY, title = wx. EmptyString, pos = wx. DefaultPosition, size = wx. Size( 500,300 ), style = wx. DEFAULT_FRAME_STYLE|wx. TAB_TRAVERSAL ) self. timer = wx. Timer self. Bind self. SetSizeHintsSz bSizer3 = wx. BoxSizer self. m_staticText1 = wx. StaticText( self, wx. ID_ANY, u"Yazi", wx. DefaultPosition, wx. DefaultSize, 0 ) self. m_staticText1. Wrap( -1 ) bSizer3. Add( self. m_staticText1, 0, wx. ALL, 5 ) self. m_button1 = wx. Button( self, wx. ID_ANY, u"Start", wx. DefaultPosition, wx. DefaultSize, 0 ) bSizer3. Add( self. m_button1, 0, wx. ALL, 5 ) self. SetSizer( bSizer3 ) self. Layout self. m_statusBar1 = self. CreateStatusBar( 1, wx. ST_SIZEGRIP, wx. ID_ANY ) self. Centre self. m_button1. Bind def del : pass def onToggle : if self. m_button1. GetLabel "Start": self. i = 0 print "starting timer..." self. timer. Start(10) self. m_button1. SetLabel else: print "timer stopped!" self. timer. Stop self. m_button1. SetLabel def update : self. i = self. i + 1 self. m_staticText1. SetLabel(str app = wx. App frame = MyFrame1 frame. Show app. MainLoop YekteranBaymedir tarafından 23/Eki/13 15:17 tarihinde düzenlenmiştir

. net dillerinde timer bir threadpool hocam ama python da nedir bilmiyorum.. ama şyle bi thread timer var python da bunu deneyebilrisin? import time import smtplib import threading if True: t = threading. Timer(300, lambda: send_email t. start print "rest of the script keeps running" print "keeps running the scrpit and after 300s the email is sent" unbalanced tarafından 23/Eki/13 16:04 tarihinde düzenlenmiştir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

hocam bu konuda bilgim olsa ilk paylaşmak isteyeceğim insan sensin ama yok malesef şimdilik. En azından uplayalım bilen çıkar elbet. www.kriptopedi.com

beyler nerde yanlış yapıyorum bir bakar mısınız? windows'ta çalışıyor takır takır: http://inciswf.com/twktmoxt. swf ubuntu'da (python 2.7.3 + wxPython kurulu): tıkladığımda 1 yazıyor ve donuyor GUI

# - - coding: utf-8 - - import threading import wx import time class MyFrame1 : def init : self. p_stop = 0 self. p_checked = 0 wx. Frame. init ( self, parent, id = wx. ID_ANY, title = wx. EmptyString, pos = wx. DefaultPosition, size = wx. Size( 500,300 ), style = wx. DEFAULT_FRAME_STYLE|wx. TAB_TRAVERSAL ) self. SetSizeHintsSz bSizer3 = wx. BoxSizer self. m_staticText1 = wx. StaticText( self, wx. ID_ANY, u"Yazilar", wx. DefaultPosition, wx. DefaultSize, 0 ) self. m_staticText1. Wrap( -1 ) bSizer3. Add( self. m_staticText1, 0, wx. ALL, 5 ) self. m_button1 = wx. Button( self, wx. ID_ANY, u"Tikla", wx. DefaultPosition, wx. DefaultSize, 0 ) bSizer3. Add( self. m_button1, 0, wx. ALL, 5 ) self. SetSizer( bSizer3 ) self. Layout self. m_statusBar1 = self. CreateStatusBar( 1, wx. ST_SIZEGRIP, wx. ID_ANY ) self. Centre self. m_button1. Bind( wx. EVT_BUTTON, self. button1_tikla ) def del : pass def button1_tikla : try: self. p except: self. p = threading. Thread(target=self. th1) self. p_stop = 0 self. p_checked = 0 self. p. start else: print u"Thread zaten çalışıyor" def th1 : try: for x in range(1,100000): if self. p_stop 1: self. p_checked = 1 break self. m_staticText1. Label = str time. sleep(0.01) self. p_checked = 1 except: print u"Thread çalıştırma hatası" else: print u"sorun yok" app = wx. App frame = MyFrame1 frame. Show app. MainLoop

setlabel yerine self. depositLabel = 'degerin...' yada self. depositLabel. config dener misin unbalanced tarafından 23/Eki/13 14:36 tarihinde düzenlenmiştir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

uplıyım kanka :)