Элементы tkinter не меняются с помощью окна, используя пакет - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть текущий код ниже для ввода некоторых основных параметров в назначение AI.Это просто для того, чтобы сохранить начальные параметры и отобразить выход различных реализованных алгоритмов, однако поле, содержащее выходные данные, не изменится?Я думаю, что я делаю что-то не так с, возможно, структурой родитель-потомок, но я не могу понять, что.

def __init__(self, master=None):
    super().__init__(master)
    self.master = master
    self.pack()
    self.create_widgets()

def create_widgets(self):
    self.mainframe= tk.Frame(master=self, width=768, height=576)
    self.mainframe.pack(fill=tk.BOTH, expand=1)
    self.xsizelabel = tk.Label(self.mainframe, text="Size (X)")
    self.xsizelabel.pack(side="top")
    self.xsize = tk.Entry(self.mainframe)
    self.xsize.insert(0, 2)
    self.xsize.pack(side="top")
    self.ysizelabel = tk.Label(self.mainframe, text="Size (Y)")
    self.ysizelabel.pack(side="top")
    self.ysize = tk.Entry(self.mainframe)
    self.ysize.insert(0, 1)
    self.ysize.pack(side="top")
    self.xstartlabel = tk.Label(self.mainframe, text="Starting Position (X)")
    self.xstartlabel.pack(side="top")
    self.xStart = tk.Entry(self.mainframe)
    self.xStart.insert(0, 0)
    self.xStart.pack(side="top")
    self.ystartlabel = tk.Label(self.mainframe, text="Starting Position (Y)")
    self.ystartlabel.pack(side="top")
    self.yStart = tk.Entry(self.mainframe)
    self.yStart.insert(0, 0)
    self.yStart.pack(side="top")
    self.outputstartlabel = tk.Label(self.mainframe, text="Output")
    self.outputstartlabel.pack(side="top")
    self.separator = tk.Frame(master=self.mainframe, width=768, height=576, bd=1)
    self.separator.pack(fill=tk.BOTH, padx=5, pady=5)
    self.output = tk.Scrollbar(self.separator)
    self.output.pack(side=tk.RIGHT, fill=tk.Y)
    self.listbox = tk.Listbox(self.separator, yscrollcommand=self.output.set)
    self.listbox.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)
    self.run_button = tk.Button(self.mainframe)
    self.run_button["text"] = "Run with these settings"
    self.run_button["command"] = self.runAlgorithm
    self.run_button.pack(side="top")
    self.quit = tk.Button(self.mainframe, text="QUIT", fg="red",
                          command=self.master.destroy)
    self.quit.pack(side="bottom")

, но получающееся окно выглядит так: default

расширенный

ничто не расширяется, когда я расширяю окно, несмотря на настройки автозаполнения и параметров расширения.что я делаю не так?

1 Ответ

0 голосов
/ 04 февраля 2019

Я не могу запустить вашу программу, потому что вы не представили все это.Я вижу, что вы установили параметры заполнения и раскрытия в self.mainframe, но вы не установили эти параметры в конструкторе.Поэтому базовое окно, которое содержит self.mainframe, не будет расширяться, чтобы заполнить его доступное пространство.Вы должны сделать все родительские окна расширяемыми, потому что при перетаскивании краев главного окна вы действуете на фрейме верхнего уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...