Ich habe Kommentare an verschiedenen Stellen, an denen ich versucht habe, die Methoden columnconfigure oder rowconfigure zu verwenden, um die Größe der Fenster zu ändern, aber nichts scheint zu funktionieren. Ich kann auch Hauptschleife() herausnehmen und mein Programm läuft genau gleich. Das führt mich zu der Annahme, dass ich vielleicht nicht richtig mit dem Hauptkabel anrufe. Die Methoden dienen hauptsächlich der Organisation, und ich weiß, dass sie im Moment keine wiederverwendbaren Methoden sind. Ich hatte vor, das irgendwann zu korrigieren, aber das ist nicht der Zweck dieses Posts.Wie erzwinge ich die Größe dieser TTK-Apps, wenn ich die Größe des Fensters ändere?
#!/usr/bin/python
from tkinter import *
from tkinter import ttk
import webbrowser
from dictionary import *
class AI():
def __init__(self):
self.urls = dictionary.get()
self.makeMainframe()
self.makeLabels()
self.makeDropDown()
self.makeButton()
self.makeEntry()
for child in self.mainframe.winfo_children():
child.grid_configure(padx=2, pady=2)
#child.columnconfigure(index='all',weight=1)
#child.rowconfigure(index='all',weight=1)
def openMenu(self):
webbrowser.open(self.urls[self.lunchVar.get()])
print(self.urls[self.lunchVar.get()])
def saveChoice(self, event):
print(self.foodVar.get())
def makeMainframe(self):
self.mainframe = ttk.Frame(padding="3 3 12 12")
self.mainframe.grid(column=0, row=0, sticky=(N,W,E,S))
#self.mainframe.columnconfigure('all', weight=1)
#self.mainframe.rowconfigure(index='all', weight=1)
def makeDropDown(self):
self.lunchVar = StringVar()
self.lunchChoice = ttk.Combobox(self.mainframe, textvariable=self.lunchVar, state='readonly')
self.lunchChoice['values'] = list(self.urls.keys())
self.lunchChoice.grid(column=2, row=1, sticky=(W, E))
def makeLabels(self):
ttk.Label(self.mainframe, text="Today's lunch is from...").grid(column=1, row=1, sticky=(E,W))
ttk.Label(self.mainframe, text="Click here for a menu -->").grid(column=1, row=2, sticky=(E,W))
ttk.Label(self.mainframe, text="What will you be having?").grid(column=1, row=3, sticky=(E,W))
def makeButton(self):
self.menu = ttk.Button(self.mainframe, textvariable=self.lunchVar, command=self.openMenu)
self.menu.grid(column=2, row=2, sticky=(W, E))
def makeEntry(self):
self.foodVar = StringVar()
self.foodChoice = ttk.Entry(self.mainframe, textvariable=self.foodVar)
self.foodChoice.grid(column=2, row=3, sticky=(E,W))
self.foodChoice.bind("<Return>", self.saveChoice)
#self.foodChoice.columnconfigure(index='all', weight=1)
AI=AI()
mainloop()
einige Ihrer Eindruck ist gebrochen –