Как расположить кнопки в ткинтер как на фото? - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть проект с Python, но я не могу расположить кнопки. Как я могу расположить их так на фотографии?

введите описание изображения здесь

1 Ответ

1 голос
/ 07 апреля 2020

Вам нужно разбить проблему на более мелкие части. Глядя на фотографию, я вижу три отдельных области: синюю полосу сверху с заголовком, строку надписей, виджеты ввода и кнопки, а затем сетку кнопок. Итак, начните с изучения того, как складывать три горизонтальные области друг на друга.

Далее вы можете сфокусироваться на каждом разделе по отдельности:

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

Вы можете сделать все это с помощью двух менеджеров геометрии: grid и pack. pack лучше всего подходит для выравнивания по краям (например: слева направо, сверху вниз). grid хорош для создания сетки. Они оба довольно хорошо документированы на нескольких сайтах inte rnet.

Если бы я делал это, я бы использовал pack для укладки трех кадров сверху вниз, с нижним кадром, настроенным на заполнить все оставшееся пространство. Я бы также использовал pack для размещения меток, виджетов ввода и кнопок во втором разделе. Я бы использовал сетку, чтобы выложить кнопки в третьем разделе. Это не единственный способ, но я думаю, что он требует наименьшего количества кода.

Например, первым шагом является создание трех фреймов и их разметка. Это может выглядеть примерно так:

import tkinter as tk
root = tk.Tk()

title_frame = tk.Frame(root)
tool_frame = tk.Frame(root)
button_frame = tk.Frame(root)

title_frame.pack(side="top", fill=x", expand=False)
tool_frame.pack(side="top", fill="x", expand=False)
button_frame.pack(side="top", fill="both", expand=True)

После этого нужно просто выполнить один и тот же процесс для каждого раздела.

Совет. Во время начальной разработки полезно временно назначить каждому кадру отдельный цвет, толстую рамку и / или предполагаемую ширину и высоту, чтобы их можно было визуализировать. Вы можете go вернуться назад и отрегулировать цвета и границы после того, как у вас все будет работать, а ширина и высота виджета должны автоматически корректироваться после того, как вы начнете добавлять другие виджеты.

...