Verfasst: Montag 18. August 2008, 19:03
sagt mal, kann ich denn nicht auch grid nehmen ?
Kai
Kai
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Klar, kannst du. Aber einfacher wird es dadurch m.E. nicht.derkai hat geschrieben:sagt mal, kann ich denn nicht auch grid nehmen ?
Code: Alles auswählen
import Tkinter as tk
class Scroller(object):
def __init__(self, root):
self.root = root
self.frame = tk.Frame(self.root)
self.canvas = tk.Canvas(self.frame, width=100, height=100, bg='white')
xscroll = tk.Scrollbar(self.root, orient='horizontal')
self.canvas.config(xscrollcommand=xscroll.set)
xscroll.config(command=self.canvas.xview)
yscroll = tk.Scrollbar(self.root, orient='vertical')
self.canvas.config(yscrollcommand=yscroll.set)
yscroll.config(command=self.canvas.yview)
w = 999
self.canvas.config(scrollregion=(0, 0, w, w))
self.canvas.pack(side=tk.LEFT, expand=1, fill=tk.BOTH)
self.frame.grid(row=0, column=0, sticky=tk.N+tk.S+tk.E+tk.W)
yscroll.grid(row=0, column=1, sticky=tk.N+tk.S)
xscroll.grid(row=1, column=0, sticky=tk.E+tk.W)
self.root.grid_columnconfigure(0, weight=1)
self.root.grid_rowconfigure(0, weight=1)
p0 = (0, 0)
p1 = (w >> 1, w - 1)
p2 = (w - 1, 0)
self.canvas.create_line(p0, p1)
self.canvas.create_line(p1, p2)
if __name__ == '__main__':
root = tk.Tk()
Scroller(root)
root.mainloop()
Code: Alles auswählen
fenster1.pack(side=tk.LEFT, ...
Weil du den pack()-Manager nicht richtig einsetzt ...derkai hat geschrieben:ja, aber warum bekomme ich denn dann keinen Frame mehr RECHTS NEBEN die Spielfläche ?
Code: Alles auswählen
import Tkinter as tk
spiel = tk.Tk()
spiel.geometry("1024x768")
linkeseite = tk.Frame(spiel,bg="tomato",width=100)
linkeseite.pack(side=tk.LEFT,fill=tk.Y)
rechteseite = tk.Frame(spiel,bg="peachpuff",bd=3,relief=tk.SUNKEN)
rechteseite.pack(side=tk.LEFT,fill=tk.BOTH,expand=True)
spflaeche = tk.Canvas(rechteseite,bg="white")
spflaeche.pack(expand=True,fill=tk.BOTH,padx=25,pady=30)
rechtsnebencanvas = tk.Frame(spiel,bg="lightblue",width=100)
rechtsnebencanvas.pack(side=tk.LEFT,fill=tk.Y)
schieber = tk.Scrollbar(rechteseite,orient=tk.HORIZONTAL)
schieber.pack(fill=tk.X)
spiel.mainloop()
Code: Alles auswählen
import Tkinter as tk
spiel = tk.Tk()
spiel.geometry("1024x768")
linkeseite = tk.Frame(spiel,bg="tomato",width=100)
linkeseite.pack(side=tk.LEFT,fill=tk.Y)
spiel.mainloop()
Code: Alles auswählen
import Tkinter as tk
spiel = tk.Tk()
spiel.geometry("1024x768")
linkeseite = tk.Frame(spiel,bg="tomato",width=100,height=100)
linkeseite.pack(side=tk.LEFT)
spiel.mainloop()
Code: Alles auswählen
import Tkinter as tk
spiel = tk.Tk()
spiel.geometry("1024x768")
linkeseite = tk.Frame(spiel,bg="tomato",width=100,height=100)
linkeseite.pack(anchor=tk.NW)
rechteseite = tk.Frame(spiel,bg="peachpuff",bd=3,relief=tk.SUNKEN)
rechteseite.pack(side=tk.LEFT,fill=tk.BOTH,expand=True)
spiel.mainloop()
Code: Alles auswählen
rechteseite = tk.Frame(spiel,bg="peachpuff",bd=3,relief=tk.SUNKEN)
rechteseite.pack(anchor=tk.NE,fill=tk.BOTH,expand=True)
Code: Alles auswählen
import Tkinter as tk
from funktionen import *
#Hauptfenster erzeugen
spiel = tk.Tk()
spiel.geometry("1024x768")
spiel.title("Kai s Battle Game")
spiel.config(bg="grey")
#Frame1 erzeugen
fenster1 = tk.Frame(master=spiel,bg="white",width=500,
height=500,bd=2,relief=tk.SUNKEN)
fenster1.place(x=10,y=20)
#Scrollbar erzeugen
xleiste = tk.Scrollbar(master=fenster1,orient=tk.HORIZONTAL)
yleiste = tk.Scrollbar(master=fenster1,orient=tk.VERTICAL)
xleiste.pack(side=tk.BOTTOM,pady=2,fill=tk.X)
yleiste.pack(side=tk.RIGHT,pady=2,fill=tk.Y)
#Canvas im Hauptfenster
spflaeche = tk.Canvas (master=fenster1,width=495,height=495)
erstelle_hexfeldobjekte (spielreihen, ungerade_spalten)
for x in hexdic.iterkeys() :
spflaeche.create_polygon (hexdic[x][0],fill=hexdic[x][2],outline="black")
spflaeche.pack()
#Verknuepfung Scrollbar
xleiste.config(command=spflaeche.xview)
yleiste.config(command=spflaeche.yview)
#Frame2 erzeugen -> Miniaturansicht
fenster2 = tk.Frame(master=spiel,bg="white",width=200,height=200,
bd=2,relief=tk.SUNKEN)
fenster2.place(x=600,y=80)
#Frame3 erzeugen -> Miniaturansicht
fenster3 = tk.Frame(master=spiel,bg="white",width=200,height=200,
bd=2,relief=tk.SUNKEN)
fenster3.place(x=10,y=550)
spiel.mainloop()
Code: Alles auswählen
import Tkinter as tk
spiel = tk.Tk()
spiel.geometry("1024x768")
linkeseite = tk.Frame(spiel)
linkeseite.pack(side=tk.LEFT,fill=tk.BOTH,expand=True)
spielfeld = tk.Canvas(linkeseite,bg="white",bd=2,relief=tk.SUNKEN)
spielfeld.pack(expand=True,fill=tk.BOTH,padx=25,pady=20)
schieber_x = tk.Scrollbar(spielfeld,orient=tk.HORIZONTAL)
schieber_x.pack(side=tk.BOTTOM,fill=tk.X)
schieber_y = tk.Scrollbar(spielfeld,orient=tk.VERTICAL)
schieber_y.pack(side=tk.RIGHT,fill=tk.Y)
vorschau = tk.Canvas(linkeseite,bg="white",bd=2,relief=tk.SUNKEN,width=180,height=120)
vorschau.pack(pady=20)
rechteseite = tk.Frame(spiel,bd=3,relief=tk.GROOVE)
rechteseite.pack(side=tk.RIGHT,anchor=tk.N,padx=20,pady=20)
knopfoben = tk.Button(rechteseite,text="oben")
knopfoben.pack(pady=10)
knopfbereich = tk.Frame(rechteseite)
knopfbereich.pack(padx=20,pady=10)
knopflinks = tk.Button(knopfbereich,text="links")
knopflinks.pack(side=tk.LEFT,padx=10)
knopfrechts = tk.Button(knopfbereich,text="rechts")
knopfrechts.pack(side=tk.LEFT,padx=10)
spiel.mainloop()
Code: Alles auswählen
import Tkinter as tk
from funktionen import *
spiel = tk.Tk()
spiel.geometry("1024x768")
frame1 = tk.Frame(spiel)
frame1.pack(side=tk.LEFT,fill=tk.BOTH,expand=True)
spielfeld = tk.Canvas(frame1,bg="white",bd=2,relief=tk.SUNKEN)
erstelle_hexfeldobjekte ()
for x in hexdic.iterkeys() :
spielfeld.create_polygon (hexdic[x][0],fill=hexdic[x][2],outline="black")
spielfeld.pack(expand=True,fill=tk.BOTH,padx=25,pady=20)
schieber_x = tk.Scrollbar(spielfeld,orient=tk.HORIZONTAL)
schieber_x.pack(side=tk.BOTTOM,fill=tk.X)
schieber_y = tk.Scrollbar(spielfeld,orient=tk.VERTICAL)
schieber_y.pack(side=tk.RIGHT,fill=tk.Y)
schieber_x.config(command=spielfeld.xview)
schieber_y.config(command=spielfeld.yview)
vorschau = tk.Canvas(frame1,bg="white",bd=2,relief=tk.SUNKEN,width=200,height=200)
vorschau.pack(pady=20)
frame2 = tk.Frame(spiel,bd=3,relief=tk.GROOVE)
frame2.pack(side=tk.RIGHT,anchor=tk.N,padx=20,pady=20)
knopfoben = tk.Button(frame2,text="oben")
knopfoben.pack(pady=10)
knopfbereich = tk.Frame(frame2)
knopfbereich.pack(padx=20,pady=10)
knopflinks = tk.Button(frame2,text="links")
knopflinks.pack(side=tk.LEFT,padx=10)
knopfrechts = tk.Button(frame2,text="rechts")
knopfrechts.pack(side=tk.LEFT,padx=10)
spiel.mainloop()
Code: Alles auswählen
vorschau = tk.Canvas(frame1,bg="white",bd=2,relief=tk.SUNKEN,width=220,height=220)
vorschau.pack(anchor=tk.W,pady=10,padx=25)
Code: Alles auswählen
import Tkinter as tk
class Scroller(object):
def __init__(self, root):
self.root = root
self.frame = tk.Frame(self.root)
self.canvas = tk.Canvas(self.frame, width=100, height=100, bg='white')
self.x_scroll = tk.Scrollbar(self.frame, orient='horizontal')
self.canvas.config(xscrollcommand=self.x_scroll.set)
self.x_scroll.config(command=self.canvas.xview)
self.y_scroll = tk.Scrollbar(self.frame, orient='vertical')
self.canvas.config(yscrollcommand=self.y_scroll.set)
self.y_scroll.config(command=self.canvas.yview)
w = 999
self.canvas.config(scrollregion=(0, 0, w, w))
self.canvas.grid(row=0, column=0, sticky=tk.N+tk.S+tk.W+tk.E)
self.frame.pack(fill=tk.BOTH, expand=1)
self.y_scroll.grid(row=0, column=1, sticky=tk.N+tk.S)
self.x_scroll.grid(row=1, column=0, sticky=tk.E+tk.W)
# enable canvas resizing
self.frame.grid_columnconfigure(0, weight=1)
self.frame.grid_rowconfigure(0, weight=1)
p0 = (0, 0)
p1 = (w >> 1, w - 1)
p2 = (w - 1, 0)
self.canvas.create_line(p0, p1, p2)
if __name__ == '__main__':
root = tk.Tk()
Scroller(root)
root.mainloop()
Code: Alles auswählen
spiel = tk.Tk()
spiel.geometry("1024x768")
Code: Alles auswählen
frame1 = tk.Frame(spiel)
frame1.pack(side=tk.LEFT,fill=tk.BOTH,expand=True)
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Skriptname: frame_test_01.py
import Tkinter as tk
if __name__ == '__main__':
root = tk.Tk()
#~~ Behälter in welchem mein Frame links oben platziert werden soll.
# Dieser Behälter wird an die linke Seite des noch nicht skalierten
# Hauptfenster 'root' geklebt.
container_frame_left = tk.Frame(root)
container_frame_left.pack(side='left', fill='y')
#~~ Mein Frame das ich links oben platzieren möchte
# Das Frame wird an die obere Kante des Behälters 'container_frame_left'
# geklebt.
my_left_top_frame = tk.Frame(container_frame_left, bg="steelblue3",
width=200, height=200)
my_left_top_frame.pack(side='top')
#~~ Das Hauptfenster 'root' wird auf die gewünschte Grösse gebracht
root.geometry("1024x764")
root.mainloop()