2013-08-23 75 views
7

Nihayetinde, Tytter modülünü kullanarak Python ile "garip şekilli pencereler" yaratmaya çalışıyorum. Ama şimdilik, çocuk widget'larını tamamen görünür halde tutarken arka planı şeffaf hale getirebilmek için yerleşeceğim.Tkinter ile şeffaf pencereler oluşturmanın bir yolu var mı?

Bunun wxPython ve diğer bazı modüllerle yapıldığı bilincindeyim, ancak Tkinter'in sınırlarını araştırıyorum.

Tinkter, Tuval veya Çerçeve'yi net bir şekilde oluşturabilir mi? Bir tuval veya çerçeve olmadan UI öğeleri paketi olabilir mi? Bireysel UI öğeleri şeffaf olabilir mi?

Z yığınındaki herhangi bir pencereyi işlemek için fare tıklama konumlarını sisteme geri döndürebilir mi?

cevap

11

seçenek root.attributes('-alpha', 0.1) kökünde bile widget'ları şeffaflığı devralır bu durumda şeffaf penceresi Ancak

from Tkinter import * 
root = Tk() 
root.attributes('-alpha', 0.3) 
root.mainloop() 

yapmak için kullanılabilir. (Ubuntu üzerinde test) Linux için

Güncelleme

Yukarıdaki kod Linux makinelerde çalışmaz. İşte Linux üzerinde çalışan bir güncelleme. Bu, Windows'ta çalışıyor mu, emin değilim.

+2

Bu, linux w/python3-tk üzerinde çalışmaz 3.4.3 –

+0

İlginç. Örneğiniz çalışmasına rağmen, 'root.overrideredirect (True) 'ile uyumsuz gibi görünüyor; bunu “wait_visibility” çağrısından önce eklerseniz, pencerenin yanıp sönmesine neden olur (tamamen opak görünür ve hemen şeffaf olur). –

+1

'Pencere yanıp sönme' fenomeni 'overrideredirect' çağrısından bağımsız olarak benim için gerçekleşir. Sanırım pencere, bir sonraki pencereye tamamen görünür hale gelinceye kadar bekleyebilen 'wait_visibility' sonucudur. – oat

İlgili konular