Размеры окна верхнего уровня Tkinter

Я искал во всем Интернете, пытаясь найти способ измерить TopLevel() окно в ткинтер. Я прочитал документацию и посмотрел tkinterbook на сайте effbot.org. Я вижу варианты, но просто не могу заставить их работать.

def test():
  top = Toplevel()
  top.title("test")

  msg = Message(top, text="test")
  msg.pack(pady=10, padx=10)


def test1():
  top = Toplevel()
  top.title("test1")

  msg = Message(top, text="test1")
  msg.pack(pady=10, padx=10)

Я знаю что есть height а также width варианты и есть также root.geometry, Однако я просто не могу ничего получить с TopLevel работать...

Кроме того, это лучший способ создать новое окно с помощью определения и верхнего уровня? Все, что я хочу, это всплывающее окно с некоторым форматированным текстом в нем.

1 ответ

Следующее создает корневое окно, затем устанавливает его размер 400x400, а затем создает Toplevel виджет и устанавливает его размер в 500x100:

>>> import tkinter as tk
>>> root = tk.Tk()
>>> root.geometry('400x400')
''
>>> top = tk.Toplevel()
>>> top.geometry('500x100')
''

Другой вариант - использовать контейнерный виджет, например Canvas или же Frameнужного размера в окне, с которым вы хотели бы работать. Затем вы можете поместить другие объекты в этот контейнер:

>>> top2 = tk.Toplevel()
>>> frame = tk.Frame(top2, width=100, height=100)
>>> frame.pack()

Когда ты pack() frame, top2 автоматически подгоняется под frameразмер.

С помощью geometry() установить размер результатов AxB в том же окне размера, что и размещение виджета AxB в окне динамического размера, то есть если вы вставили виджет (или используете geometry() чтобы установить размер окна в) ширину экрана, границы окна будут находиться за пределами видимой области экрана.

Другие вопросы по тегам