Seite 1 von 2
spezielle Funktionen bei Tkinter
Verfasst: Donnerstag 23. Juni 2011, 17:48
von jtschoch
Hi,
gibt es was bei Tkinter wo mann ein Fenster ohne die Leiste oben machen kann
(close,minimieren,... soll weg art Frame)
Re: fenster ohne Leiste
Verfasst: Donnerstag 23. Juni 2011, 18:03
von numerix
Code: Alles auswählen
import Tkinter as tk
root = tk.Tk()
tk.Label(text="Fenster ohne Rahmen").pack()
root.overrideredirect(True)
root.mainloop()
Aber überleg dir vorher, wie du das Fenster schließen willst ...
Re: fenster ohne Leiste
Verfasst: Donnerstag 23. Juni 2011, 18:34
von jtschoch
danke
da habe ich schon was root.destroy()
Re: fenster ohne Leiste
Verfasst: Donnerstag 23. Juni 2011, 18:43
von jtschoch
Gibt es auch noch was damit man die Ecken rund machen kann?
Re: fenster ohne Leiste
Verfasst: Donnerstag 23. Juni 2011, 18:51
von Xynon1
Klar nimm einen Mac. - Spaß beiseite das aussehen richtet sich nach der Standard-Lib die Tk für das Aussehen nutzt, also von OS zu OS unterschiedlich. Tkinter kann selbst keine anderen "Skins" nutzen, dies geht aber z.B. mit "ttk". Gib einfach mal in der Forensuche oder bei Google "tkinter ttk clam" ein da findet man mehr als genug. Solltest du aber reines Tkinter benutzen wollen, so würde ich den Hintergrund des Toplevel-Widgets transparent setzen und ein PIL-Image mit runden Ecken darauf packen.
Re: fenster ohne Leiste
Verfasst: Donnerstag 23. Juni 2011, 18:54
von jtschoch
Ich habe ein bild dahinter - Danke
Re: fenster ohne Leiste
Verfasst: Donnerstag 23. Juni 2011, 19:06
von jtschoch
Ich finde nichts richtiges
Re: fenster ohne Leiste
Verfasst: Donnerstag 23. Juni 2011, 19:07
von jtschoch
Und wie kann man die Fensterposition in die Mitte stellen - egal wie groß der Bildschirm ist soll immer in der Mitte bleiben
Re: fenster ohne Leiste
Verfasst: Donnerstag 23. Juni 2011, 19:10
von EyDu
Heute kann man wohl alle Probleme
so lösen ^^
Re: fenster ohne Leiste
Verfasst: Donnerstag 23. Juni 2011, 19:30
von Xynon1
@EyDu
Das dachte ich auch gerade.
@jtschoch
wuf und ich hatten zu diesen Themen auch schon was im Forum geschrieben. Deweiteren habe ich einige Schlagworte genannt und du findest gar nichts?! Das deutet eher darauf hin das du nicht richtig gesucht hast.
Re: fenster ohne Leiste
Verfasst: Sonntag 26. Juni 2011, 08:00
von jtschoch
Gibt es noch einen Befehl,
dass das Fenster immer im Vordergrund bleibt?
Danke voraus
Re: fenster ohne Leiste
Verfasst: Sonntag 26. Juni 2011, 09:25
von jtschoch
Habe es gefunden
Re: fenster ohne Leiste
Verfasst: Dienstag 28. Juni 2011, 17:21
von jtschoch
1.Habe noch eine Frage:
kann mann den Hintergrund Transparenz machen, aber Label's,Button... sollen es nicht sein?
gibt es dafür einen Befehl?
Re: fenster ohne Leiste
Verfasst: Dienstag 28. Juni 2011, 17:49
von jtschoch
2.oder gibt es was damit mann die Fenster im XP style machen kannn? (Buttol, Scrollbar...)oder eigne style's
3.Und wie kann man unten bei der Leiste da wo die Urzeit ist, so ein Icon mit dem Programm soll aber nur angezeigt werden wenn das Programm läuft.
Re: spezielle Funktionen bei Tkinter
Verfasst: Dienstag 28. Juni 2011, 18:53
von Xynon1
1. Sowas ?
Code: Alles auswählen
#!/usr/bin/env python
import Tkinter as tk
if __name__ == "__main__":
root = tk.Tk()
root.attributes("-transparentcolor", "pink")
root.config(bg="pink")
root.overrideredirect(True)
root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(),
root.winfo_screenheight()))
for side in ["left", "right", "top", "bottom"]:
bt = tk.Button(root, text="Hello World", command=root.destroy)
bt.pack(side=side)
root.mainloop()
2. ja, ttk hatte ich oben schon erwähnt.
3. tktray - gibt es aber nicht Standardmäßig in Tkinter müsste aber seit Tcl/Tk 8.4 in der Standard-Lib sein. (Ist aber nicht OS unabhängig)
Re: spezielle Funktionen bei Tkinter
Verfasst: Mittwoch 29. Juni 2011, 13:44
von jtschoch
@Xynon1 Danke
Re: spezielle Funktionen bei Tkinter
Verfasst: Mittwoch 29. Juni 2011, 13:55
von jtschoch
1.Kann man auch irgendwie bei der ersten 1. auch ein bisschen Farbe geben?
Re: spezielle Funktionen bei Tkinter
Verfasst: Mittwoch 29. Juni 2011, 15:21
von jtschoch
2. Wie kann mann das Fenster bewegen wenn es keinen Rahmen hat?
Re: spezielle Funktionen bei Tkinter
Verfasst: Mittwoch 29. Juni 2011, 16:24
von Xynon1
1. Ich weiß nicht wo dein Problem ist, man kann damit alles machen was einen einfällt.
2. Gar nicht, höchstens mit einer eigenen Funktion die du dann selbst auf ein Widget legen musst.
zu 1: Der Schwachsinn ist mir eingefallen
Code: Alles auswählen
#!/usr/bin/env python
import Tkinter as tk
import math
DELAY = 100
def get(center, radius, velocity):
x = int(radius * math.cos(velocity) + center[0])
y = int(radius * math.sin(velocity) + center[1])
return x, y
def rotate(cv, rect, size, center, radius, velocity):
x, y = get(center, radius, velocity)
cv.coords(rect, x, y, x + size[0], y + size[1])
cv.after(DELAY, rotate, cv, rect, size, center, radius, velocity + 1)
if __name__ == "__main__":
root = tk.Tk()
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
root.attributes("-transparentcolor", "pink")
root.overrideredirect(True)
root.geometry("{0}x{1}+0+0".format(screen_width, screen_height))
cv = tk.Canvas(root, bg="white")
cv.pack(expand=True, fill="both")
width = 3
radius = math.hypot(screen_width, screen_height)
center = center_x, center_y = screen_width / 2, screen_height / 2
for velocity in xrange(0, 360):
x, y = get(center, radius, velocity)
cv.create_line(x, y, center_x, center_y, width=width, fill="pink")
for side in ["left", "right", "top", "bottom"]:
bt = tk.Button(cv, text="Hello World", command=root.destroy)
bt.pack(side=side)
size = width, height = 250, 250
radius = 300
center = center_x - (width / 2), center_y - (height / 2)
#amount = 8
#for angle in xrange(amount):
# velocity = angle * (math.pi / (amount / 2))
# rect = cv.create_rectangle(0, 0, width, height, fill="pink")
# rotate(cv, rect, size, center, radius, velocity)
root.mainloop()
Re: spezielle Funktionen bei Tkinter
Verfasst: Mittwoch 29. Juni 2011, 16:46
von numerix
Läuft auf meinem Linux-System (Ubuntu) nicht. Fehlermeldung lautet:
Code: Alles auswählen
_tkinter.TclError: bad attribute "-transparentcolor": must be -alpha, -topmost, -zoomed, or -fullscreen