Нижняя рамка не отображается в tkinter - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь создать основное окно с помощью tkinter (python3), в верхней части окна должен быть скриншот, а внизу - текстовое поле и кнопка. Это код, который я написал

    from tkinter import Frame, TOP, BOTTOM, LEFT, RIGHT
    from tkinter import Tk, Entry, Label, Button

    from PIL import ImageGrab
    from PIL.ImageTk import PhotoImage

    curr_image = ImageGrab.grab()

    image_root_window = Tk()

    # The screenshot image
    image_frame = Frame(image_root_window)
    image_display = PhotoImage(curr_image)
    image_label = Label(image_frame, image=image_display)
    image_label.pack()
    image_frame.pack(side=TOP)

    # The reward input box
    input_frame = Frame(image_root_window)
    reward_input_box = Entry(input_frame)
    finish_btn = Button(input_frame, text="next", command=None)
    reward_input_box.pack(side=LEFT)
    reward_input_box.focus()
    finish_btn.pack(side=RIGHT)
    input_frame.pack(side=BOTTOM)

    image_root_window.mainloop()

Однако, когда я запускаю это, все, что я вижу, - это скриншот, а нижняя рамка (с кнопкой ввода и кнопкой) не там, где ее можно найти. В чем моя проблема здесь?

1 Ответ

0 голосов
/ 25 октября 2019

Я думаю, в тот момент, когда вы звоните

image_frame.pack(side=TOP)

image_frame будет использовать полный размер окна. Вы можете попробовать задать для image_frame определенную высоту, т. Е. Использовать place () вместо pack (). С помощью place вы можете указать положение и размер элемента.

...