Alpha Color

Fragen zu Tkinter.
Andi
User
Beiträge: 24
Registriert: Sonntag 27. Juli 2003, 14:23
Wohnort: Großkarolinenfeld

Alpha Color

Beitragvon Andi » Dienstag 29. Juli 2003, 08:29

Halli Hallo Hallöle,

wie kann ich denn Formen (rechtecke, ovale) innerhalb einer canvas erzeugen welche mit einer transparenten farbe gefüllt sind.
mfg

(der Anderl aus Bavaria der bei den Preißn war und jetzt wieda in bayern is)
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

[Tkinter] Alpha Color

Beitragvon Voges » Dienstag 29. Juli 2003, 13:59

Hallo!
Die Füllung soll farbig, aber durchscheinend sein? Das lässt sich nur über 'Stipple Pattern' realisieren, die als Bitmap-Datei vorliegen müssen. Beispiel für ein solche Datei mit 50% Deckung(?):

Code: Alles auswählen

#define gray50_width 16
#define gray50_height 16
static unsigned char gray50_bits[] = {
   0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
   0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
   0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa};

Das Canvas wird dann erzeugt mit create_oval(..., stipple='@gray50.xbm', ...).
hth
Jan
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Dienstag 29. Juli 2003, 14:31

Hi Voges,

das schaut aber nicht nach Python aus :shock:

Code: Alles auswählen

from array import array

gray50_bits = array('B',[
    0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
    0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
    0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa])



Gruß

Dookie
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Beitragvon Voges » Dienstag 29. Juli 2003, 17:58

Hallo!
Dookie hat geschrieben:das schaut aber nicht nach Python aus :shock:
Das ist typisch für Bitmap-Dateien ;-)

Dookie hat geschrieben:

Code: Alles auswählen

gray50_bits = array('B',
Da stehe ich etwas auf dem Schlauch. Wie muss denn dann der create_oval()-Aufruf aussehen?
Jan
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Dienstag 29. Juli 2003, 19:00

sollte dann (laut Tkinterdoku) mit create_oval(..., stipple=gray50_bits, ...) gehen, aber man kann da ja auch die vordefinierten xbm's verwenden also [b]create_oval(..., stipple="gray50", ...)


Gruß

Dookie

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder