headerphoto
Anasayfa >> Programlama >> Genel Programlama >> Tkinter ile renkli liste
Tkinter ile renkli liste
clbox

Tkinter normalde yandaki gibi bir renkli liste sunmuyor.
Bu sorunu küçük bir modül ile halletmeye çalıştım.

Kullanımı oldukça basit.
Sadece Listbox yerine ColoredListbox kullanmalısınız.












Örnek:

deneme.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from Tkinter import *
import clbox
root= Tk()
 
 
def ekle():
a = 0
while a<20:
a += 1
liste.insert(END, "a%s"%a)
 
def sil():
liste.delete(ACTIVE)
 
liste = clbox.ColoredListbox(bg1="white", bg2="blue")
liste.pack()
dugme = Button(text="Ekle", command=ekle)
dugme.pack(side=LEFT)
dugme2 = Button(text="Sil", command=sil)
dugme2.pack(side=LEFT)
mainloop()

 



ColoredListbox'a, normalde Listbox'a verdiğiniz tüm parametreleri verebilirsiniz
fakat bunun haricinde bg1 ve bg2 parametrelerini belirtmek zorundasınız.

Ben gerek görmedim ama clbox.py içinde ufak bir koşullamayla
bu zorunluluğu da ortadan kaldırabilirsiniz.

Modülün tek dezavantajı döngü üzerinden çalışması.
Her saniye liste üzerinde bir değişiklik olmuş mu, olmamış mı diye
kontrol ediyor, eğer bir değişiklik yaşanmışsa tekrar renklendirme yapıyor.
Bu da haliyle uygulamanızın <birazcık> yavaşlamasına neden oluyor.
(Teorik olarak yavaşlaması lazım ama ben böyle bir yavaşlama gözlemlemedim)

Eğer yavaşlama olmadan clbox kullanmak isterseniz clbox.py içinden

self.apply_it = self.after(1000, func=self.listcolors)

 

satırını silip, listeye her ekleme çıkarma yapacağınızda uygulama kodlarınıza

listeismi.listcolors()

 

satırını eklemelisiniz.

Umarım faydası dokunur.
Konu hakkında her türlü soru ve öneriye açığım.

indir
Yorumlar (0)
Yorum yaz
Your Contact Details:
Yorumlar:
[b] [i] [u] [url] [quote] [code] [img]   
:):grin;)8):p:roll:eek:upset:zzz:sigh:?:cry:(:x
Security
Lütfen resimdeki güvenlik kodunu giriniz.

!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."