Запуск Python3.7, загруженного с python.org на MacOS Mojave.
Я использую следующий код для выравнивания Spinbox
и Scale
для управления одной и той же переменной. Тем не менее, внешний вид не то, что я ожидал:
import tkinter as tk
root = tk.Tk()
mainframe = tk.Frame(root)
# Model
input = tk.DoubleVar(value=0.)
# input = tk.IntVar(value=0)
spin = tk.Spinbox(mainframe, textvariable=input, wrap=True)
slide = tk.Scale(mainframe, variable=input, orient='horizontal')
spin['to'] = 1.0
spin['from'] = 0.0
spin['increment'] = 0.01
slide['to'] = 1.0
slide['from'] = 0.0
# spin['to'] = 100
# spin['from'] = 0
# spin['increment'] = 1
# slide['to'] = 100
# slide['from'] = 0
# Layout
weights = {'spin': 1, 'slide': 1000}
mainframe.grid_rowconfigure(0, weight=1)
mainframe.grid_columnconfigure(0, weight=weights['spin'])
mainframe.grid_columnconfigure(1, weight=weights['slide'])
spin.grid(row=0, column=0, sticky='news')
slide.grid(row=0, column=1, sticky='news')
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
mainframe.grid(row=0, column=0)
root.mainloop()
Я ожидаю, что Scale
займет больше места, чем Spinbox
, но получается наоборот.
![Result](https://i.stack.imgur.com/1lm5H.png)
Я думал, что, может быть, это потому, что я использовал DoubleVar
, где строка могла бы стать длинной из-за десятичной проблемы, но IntVar
дает мне тот же результат. Смотрите закомментированные блоки кода.
Что не так? Как я должен получить короткую Spinbox
и длинную Scale
из этой ситуации? Это специфично для macOS, где ОС накладывает минимальные размеры на виджеты?