Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Python/Tkinter sorusu


Öne çıkan mesajlar

Mesaj tarihi:
Selam,

python ile hic hasir nesir olmamistim onceden ama simdi tkinter ile ftp server applicationi yazmaya calisiyorum.

sorun, for loop ile buttonlari frame e koyduktan sonra button texti commanddeki functiona parametre olarak geciyorum. amacim butun buttonlari tek bir function ile halletmek. her button icin ayri function yazmak pek gereksiz tabi.

ilgili kod:


Buttons = ["ChgDir", "MkDir", "*.*", "View", "Exec", "Rename",
"Delete", "Refresh", DirInfo]

for index in range(0, len(Buttons)):
j = Buttons[index]
if not index == 2:
button = ttk.Button(local_sys_frame, text = j, command
= lambda: self.handle(j)).grid(row = index+1, column = 2)
button = ttk.Button(remote_sys_frame, text = j, command
= lambda: self.handle(j)).grid(row = index+1, column = 2)
else:
local_files = Entry(local_sys_frame)
local_files.config(width = 10)
local_files.insert(0, j)
local_files.grid(row = index+1, column = 2)

remote_files = Entry(remote_sys_frame)
remote_files.config(width = 10)
remote_files.insert(0, j)
remote_files.grid(row = index+1, column = 2)

def handle(self, text):
if text == "ChgDir":
...
elif text == "MkDir"
...
...



fakat nedense function istedigim gibi calismiyor. bunun sebebi stringin immutable olmasi mi? hani degistirmeye de calismiyorum, sadece logical expression var. buradaki asil sorun nedir?

simdiden tesekkurler.
Mesaj tarihi:
Emin değilim ama sanırım önce butonu yaratman gerekli. Sonrasında grid işini yapman.
10 şeyi aynı anda yapmak yerine standart ilerlesen?
Önce butonu yarat. Sonra grid'e ekle vs. vs...
Mesaj tarihi:
GUI de ya da buttonlarda sorun yok. hatta butun buttonlara ayni seyi yaptirabiliyorum. sorun, buttonlara tek function icinde ayri seyler yaptiramamak.

sorun stringden kaynaklaniyor gibi geliyor bana da, ne yapmam gerektigini bir turlu cozemedim.

bu arada python 2.7 kullaniyorum.
Mesaj tarihi:
http://stackoverflow.com/questions/10865116/python-tkinter-creating-buttons-in-for-loop-passing-command-arguments

aramaya inanip cevabi burada buldum.


... command = lambda j=j: handle(j)


diye duzeltince sorun cozuldu.
×
×
  • Yeni Oluştur...