Смещение положения шкалы tkinter с помощью менеджера .grid - PullRequest
2 голосов
/ 04 апреля 2019

В настоящее время я пишу простое программное обеспечение для управления запасами для оценки школьного питона.Мой графический интерфейс включает в себя перечисление всех товаров на складе и предоставление пользователю возможности складировать / продавать несколько товаров одновременно.Это было достигнуто путем размещения записи (сумма для покупки) и виджета масштаба (сумма для продажи) рядом с каждым элементом и использования кнопки «Применить» для введения изменений (для контекста сценарий представляет собой магазин комиксов):

https://i.imgur.com/7cesQm5.png

Это код, который я использовал для создания новых виджетов из каждого файла (все они содержатся в словаре, извлеченном из файла CSV):

itteration = 2

labels = {}

nameTitle = Label(main, text="Title").grid(row=1, column=1, padx=5)
stockTitle = Label(main, text="Stock").grid(row=1, column=2, padx=5)
buyTitle = Label(main, text="Amount to Buy").grid(row=1, column=3, padx=5)
sellTitle = Label(main, text="Amount to Sell").grid(row=1, column=4, padx=5)

for item in comic_books:

    name = item.replace(" ", "")
    nameStock = "{}Stock".format(item).replace(" ", "")
    nameBuy = "{}Buy".format(item).replace(" ", "")
    nameSell = "{}Sell".format(item).replace(" ", "")
    labels[name] = Label(main, text=item+":")
    labels[name].grid(column=1, row=itteration, padx=5)
    labels[nameStock] = Label(main, text=comic_books.get(item))
    labels[nameStock].grid(column=2, row=itteration, padx=5)
    labels[nameBuy] = Entry(main)
    labels[nameBuy].grid(column=3, row=itteration, padx=20)
    labels[nameSell] = Scale(main, from_=0, to=comic_books.get(item), orient=HORIZONTAL)
    labels[nameSell].grid(column=4, row=itteration, padx=5)
    itteration += 1

Однако я не фанат того, как весы, кажется, центрируются в ряду на основании как центра ползунка, так и числа сверху.Это заставляет ползунок казаться ниже, чем виджет ввода рядом с ним.

https://i.imgur.com/9CQTvWS.png

Мой вопрос: как бы я мог потенциально сместить положение виджетов масштаба вверх на заданнуюколичество (может быть 5-10px?) от его исходного положения, чтобы толкнуть фактический ползунок в соответствии с виджетом ввода перед ним?

Пожалуйста, дайте мне знать, если вам нужны дополнительные разъяснения

Cheers

-Sean

1 Ответ

2 голосов
/ 04 апреля 2019

Используя sticky='s' и sticky='n', чтобы придерживаться нижней (южной) и верхней (северной) ячейки, я получил это

enter image description here

IЯ не использовал другие значения в pady

import tkinter as tk

root = tk.Tk()

l = tk.Label(root, text='Label')
l.grid(column=1, row=0, padx=5, sticky='s', pady=10)

e = tk.Entry(root)
e.grid(column=2, row=0, padx=20, sticky='s', pady=10)

s = tk.Scale(root, from_=0, to=10, orient='horizontal')
s.grid(column=3, row=0, padx=5, sticky='n', pady=10)

root.mainloop()

Используя sticky с pady=(0,20) для одного виджета, я получил это

enter image description here

import tkinter as tk

root = tk.Tk()

l = tk.Label(root, text='Label')
l.grid(column=1, row=0, padx=5, sticky='s', pady=10)

e = tk.Entry(root)
e.grid(column=2, row=0, padx=20, sticky='s', pady=10)

s = tk.Scale(root, from_=0, to=10, orient='horizontal')
s.grid(column=3, row=0, padx=5, sticky='n', pady=(0,20))

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