Hintergrundbild auf einem frame

Fragen zu Tkinter.
Antworten
Ozim
User
Beiträge: 16
Registriert: Freitag 26. Oktober 2007, 19:00

Hallo,

ich habe mal wieder ein kleines Problem, bei dem ich trotz suchen keine funktionierende Lösung gefunden habe. Es scheint mir sehr einfach und eindeutig zu sein (, weshalb auch keiner danach fragt oder es postet).

Meine Frage ist: Wie kann ich einem Frame als Hintergrund ein bild zuweisen?
habe das Bild mit

Code: Alles auswählen

import Tkinter as tk
...
pi = tk.PhotoImage(file='background.gif')
eingelesen, aber wie kann ich das Bild jetzt in den Frame setzen?

Vielen Dank im Vorraus,
Ozim
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

Hallo Ozim !

Mit einem Frame geht das glaub ich nicht ?!

Code: Alles auswählen

#! /usr/bin/env python
# -*- coding: utf-8

import Tkinter as tk
fenster = tk.Tk()
pi = tk.PhotoImage(file='startbild.gif')
label = tk.Label(fenster, image=pi)
label.grid()
fenster.tk.mainloop()
gruß frank
Ozim
User
Beiträge: 16
Registriert: Freitag 26. Oktober 2007, 19:00

Hallo kaytec,

danke für die antwort. :D
Mit einem Frame geht das glaub ich nicht ?!
Wieso geht immer das nicht, was ich machen will -.-

Ok. das mit dem Label hatte ich auch gefunden. kann ich da irgendwie widgets raufsetzen?
Oder kann ich als andere Variante einfach dem Hauptfenster den Hintergrund zu weisen und die Frames durchsichtig machen :?:
Ich hätte sowieso versucht den Hintergrund auf die Frames aufzuteilen. aber ich bräuchte trotzdem den Rahmen des Frames.

mfg,
Ozim
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ozim hat geschrieben:Wieso geht immer das nicht, was ich machen will -.-
Vielleicht weil du ein Toolkit benutzt, dass modern war, als die Leute glücklich waren überhaupt grafische Ausgabe zu bekommen. :?:
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ozim
User
Beiträge: 16
Registriert: Freitag 26. Oktober 2007, 19:00

Vielleicht weil du ein Toolkit benutzt, dass modern war, als die Leute glücklich waren überhaupt grafische Ausgabe zu bekommen.
O.o' echt jetzt?... menno...

was wäre denn empfehlenswerter als Tkinter?
und hat jemand ne idee wie ich das problem mit Tkinter lösen könnte?


mfg Ozim
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ozim hat geschrieben:O.o' echt jetzt?... menno...

was wäre denn empfehlenswerter als Tkinter?
Viele Leute mögen wxPython, einige PyGTK, aber auch PyQt scheint in letzter Zeit zu einer durchaus interessanten Alternative geworden zu sein.

Mit wxPython war erst letztens hier ein Programm mit Hintergrundbild zu sehen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ozim
User
Beiträge: 16
Registriert: Freitag 26. Oktober 2007, 19:00

Ok vielen Dank :D

werd dann wohl mal wieder mit "lernen" anfangen und mich mit wxPython auseinandersetzen.

mfg Ozim
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Hi Ozim!

Kann sein, dass das totaler Quatsch ist, den ich Dir jetzt erzähle. Geh einfach von ungetesteten Aussagen zu Tkinter aus.

Für das Hintergrundbild ist ein Canvas doch am besten geeignet. Auf einem Canvas kann man doch eigentlich machen was man will. Button (mit zusätzlichen Bild) setzen, oder so.

Durchsichtig: Dazu fällt mir ein, dass man
a) die Buttons/Frames einfach in der selben Farbe des Hintergrunds erstellen kann und
b) ab Tkinter 2.5 gibt es Transparenz:

Code: Alles auswählen

import Tkinter as tk
root=tk.Tk()
root.attributes("-alpha",0.3)
root.mainloop()
Kurz erläutert: Ich arbeite mich aber auch gerade in wxPython ein.
Gruß
Andy
Ozim
User
Beiträge: 16
Registriert: Freitag 26. Oktober 2007, 19:00

Hi andy

ah vielen dank für die antwort :D

damit hab ich garnet mehr gerechnet... deshalb erst jetzt ne antwort von mir xD

hab das im derzeitigen zustand mit canvas und tkinter gemacht... aber das mit der transparenz gefällt mir echt gut :D
weil ich musste jetzt teilweise das gleiche bild (also immer ausschnitte) bis zu 3mal aufeinandersetzen ;D

werd mal probieren das so zu machen :D

vielen dank,
Ozim
Antworten