tkinter progressbar: Могу ли я настроить толщину цветового сегмента относительно размера виджета индикатора выполнения, содержащего его?

#python #tkinter

Вопрос:

У меня есть виджет tkinter progressbar, который отлично работает в ходе выполнения последовательности из N=1000 вычислений. Я знаю, как настроить размер виджета в моем главном окне, но не вертикальную толщину расширяющегося сегмента (показано синим цветом ниже), который содержится в виджете.

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

Мое главное окно помечено как корневое, и в настоящее время у меня есть

 N=1000
progress_var = DoubleVar() 
progressbar = Progressbar(master=root,variable=progress_var, length=N,maximum=1) 

progressbar.pack(side=TOP,ipady=20,fill=BOTH, expand=True)
progress_var.set(0)
progressbar.update()


for i in range(N):
    # do stuff
    progress_var.set((i 1)/N)
    progressbar.update()
 

Насколько я понимаю, опция ipad=20 управляет вертикальным размером виджета progressbar в корневом каталоге, но это мне здесь не помогает. Есть ли вариант, который я могу где-нибудь добавить?

Я использую Python 3.9 на Mac с Big Sur.

Комментарии:

1. Попробуйте изменить значение .pack(side=TOP,ipady=20,fill=BOTH, expand=True) на .pack(side="top", fill="x", ipady=20) . expand=True Иногда может заставить виджет расширяться в нежелательных направлениях, как то, что вы видите.

2. Это, похоже, не решает проблему для меня. Я забыл упомянуть, что над панелью прогресса находится холст, на котором отображается изображение: фон=фотоизображение(‘background.png’) plt.rcParams[«figure.figsize»] = [10,6] рис., ax = plt.подзаголовки() фон = plt.imread(‘background.png’) ax.imshow(фон) холст = рисунок(рисунок, мастер=корень) холст.нарисуйте() холст.get_tk_widget (). пакет(сторона=СВЕРХУ, заливка=ОБА, расширяйтесь=1) Я не думаю, что это действительно должно иметь значение, но, может быть, это имеет значение?