2016-03-24 14 views
2

GUI'm için basit grafikler oluşturmak için Tkinter's Canvas'ı kullanıyorum. Şekillerimi ve metni tuvalimdeki köşelere yerleştirmek istediğimi fark ettim, ama kısmen gizli kalmışlar. Metin için, belgenin NW olarak ayarlandığını belirten bir anchor seçeneği olduğunu görüyorum, örneğin metni sol üst köşeye yerleştirmek istiyorum, ancak daha sonra metnin başlangıcını görüyorum. kesilmek. İşte benim kodudur: Ben koordinatlarını ayarlayabilirsiniz biliyorumŞekil ve metinleri tk.Canvas'ta nasıl yerleştiririm, böylece kesilmezler?

import Tkinter as tk 

root = tk.Tk() 
root.geometry("300x300") 
c = tk.Canvas(root, bg="green", width=300, height=300) 
c.pack(fill="both", side="right", expand=True) 
c.create_text(0,0,text="Hello world!", anchor="nw") 

root.mainloop() 

nerede metin başlar ve deneme biri en iyi görünümlü bir sonuç verir hata şekil dışarı ile, bunlarla daha akıllı yolu olup olmadığını merak ediyorum yap. Çember için

import Tkinter as tk 

root = tk.Tk() 
root.geometry("300x300") 
c = tk.Canvas(root, bg="green", width=300, height=300) 
c.pack(fill="both", side="right",expand=True) 
c.create_oval(0,0,300,300, fill="gray") 

root.mainloop() 

, kenarlara yakın daire parçaları kesilmiş olan: böyle bir daire olarak, şekiller oluşturmak için çalışırken

benzer bir şey fark. Pencereyi daha büyük olacak şekilde uzatıp sürüklerseniz çemberin en sağ ve alt kısımlarını görebilirim, böylece çiziliyorlar. Ayrıca daire için anchor benzeri bir seçenek görmüyorum.

Tuvalim ve pencerenin arasındaki tuvalimin etrafındaki en küçük beyaz alanı farkettim. Paket seçeneklerini tüm taraflara karşı doldurmak ve fazladan alan mevcutsa genişletmek için ayarladım. Bu sorun olup olmadığını merak ediyorum.

cevap

4

Ne yazık ki, tuval kenarlığı ve vurgulama halkası widget'ın içindedir ve bu nedenle çekilebilir alanın bir kısmını kullanabilir ve diğer nesnelerin parçalarını gizleyebilir.

basit çözüm sıfıra highlightthickness ve borderwidth özelliklerini belirlemektir:

c.configure(highlightthickness=0, borderwidth=0) 

bir sınır ve/veya vurgulamak halkasını gerekiyorsa

, bir çerçeve içinde tuval koydu.

+0

Teşekkürler bu benim için çalıştı! –

İlgili konular