grid+sticky resiezed nicht wie ich es will - gelöst
Verfasst: Freitag 4. März 2005, 15:30
Bei dem GUI zu meinem Thumbnailgenerator habe ich Probleme das Resiezeverhalten(keine Ahnung wie man das nennt) der Widgets nach meinen Wünschen einzustellen.
Was geht nicht:
[1] Die drei Zeilen "lbl_pic_dir" "bis btn_ende" bleiben zwar zusammen und verändern sich horizontal,
sollen aber zudem noch unter der Titelleiste des Fensters kleben bleiben.
[2] "frame_output" soll von "bis btn_ende" / "btn_los" alles ausfuellen, tut dies aber nur horizontal
[3] "txt_status_display" bleibt in der Startgrösse, soll aber "frame_output" immer voll ausfuellen
Hier der lauffähige aber funktionslose Quellcode:
(gegebenenfalls pic_dir anpassen!)
cu Sebastian
Was geht nicht:
[1] Die drei Zeilen "lbl_pic_dir" "bis btn_ende" bleiben zwar zusammen und verändern sich horizontal,
sollen aber zudem noch unter der Titelleiste des Fensters kleben bleiben.
[2] "frame_output" soll von "bis btn_ende" / "btn_los" alles ausfuellen, tut dies aber nur horizontal
[3] "txt_status_display" bleibt in der Startgrösse, soll aber "frame_output" immer voll ausfuellen
Hier der lauffähige aber funktionslose Quellcode:
(gegebenenfalls pic_dir anpassen!)
Code: Alles auswählen
#!/usr/bin/python
# -*- encoding: latin-1 -*-
import sys, os, Image, optparse, string
import tkFileDialog
import Tkinter as tk
def tk_gui(pic_dir, thumb_height, pic_list):
"""
creates a Tkinter GUI
"""
def open_it():
pic_dir = tkFileDialog.askdirectory()
btn_pic_dir["text"] = pic_dir
def create_them():
txt_status_display.insert(tk.END, "foo bar \n")
master = tk.Tk()
# ---- widget creation
lbl_pic_dir = tk.Label(master, text = "Picture Directory:")
lbl_thumb_height = tk.Label(master, text="Thumb height:")
btn_ende = tk.Button(master, text = "Quit")
btn_pic_dir = tk.Button(master, text = "Picture Directory")
entry_thumb_height = tk.Entry(master)
btn_los = tk.Button(master, text = "Los")
frame_output = tk.Frame(master, relief=tk.RIDGE, borderwidth = 2)
txt_status_display=tk.Text(frame_output)
# ---- basic placement
lbl_pic_dir.grid(row = 0, column = 0, sticky = "w")
lbl_thumb_height.grid(row=1, column = 0, sticky = "w")
btn_ende.grid(row = 2, column = 0, sticky = "w")
btn_pic_dir.grid(row = 0, column = 1, sticky = "ew")
entry_thumb_height.grid(row = 1, column = 1, sticky = "ew")
btn_los.grid(row = 2, column = 1, sticky = "e")
frame_output.grid(row = 3, columnspan = 2, sticky="nesw")
.grid(row=0, column=0, sticky="nesw")
# ---- enhanced widget settings (style + Funktions)
master.title("tk-images2thumbs")
master.columnconfigure(1, weight=1)
lbl_pic_dir.config(underline = 0)
lbl_thumb_height.config(underline = 0)
btn_ende.config(relief = tk.GROOVE, fg = "#B00000", command = master.destroy, underline = 0) #B00000 = red
btn_pic_dir.config(relief = tk.SUNKEN, text = pic_dir, command = open_it, bg = "white")
entry_thumb_height.config(bg = "white")
entry_thumb_height.insert(0, thumb_height)
btn_los.config(relief = tk.GROOVE, fg = "#007500", underline = 0)#007500 = green
btn_los.config(command = create_them)
master.mainloop()
def main():
pic_dir ="/home"
pic_list =["jpg","jpeg"]
tk_gui(pic_dir, 100 , pic_list)
if __name__ == '__main__':
main()