Как я могу создать квадратный виджет Tkinter Entry, если ширина принимает только целые числа?Python

Программы на Python
Ответить
Anonymous
 Как я могу создать квадратный виджет Tkinter Entry, если ширина принимает только целые числа?

Сообщение Anonymous »

Я пытаюсь создать квадратный виджет tk.Entry в Tkinter, но параметр width принимает только целые числа, которые представляют собой количество символов вместо пикселей.
Установка width=2 делает поле слишком узким, а width=3 — слишком широким.

Код: Выделить всё

import tkinter as tk

root = tk.Tk()

entry2 = tk.Entry(root, width=2, bd=3)
entry2.pack(pady=5, anchor="w")

entry3 = tk.Entry(root, width=3, bd=3)
entry3.pack(pady=5, anchor="w")

root.mainloop()
Изображение
Попытка использовать десятичное значение приводит к ошибке.

Код: Выделить всё

import tkinter as tk

root = tk.Tk()

entry_decimal = tk.Entry(root, width=2.5, bd=3)
entry_decimal.pack(pady=5, anchor="w")

root.mainloop()

Код: Выделить всё

_tkinter.TclError: expected integer but got "2.5"
Согласно TkDocs, ширина виджета «Ввод» основана на средней ширине символов, поэтому она не является точной в пикселях и зависит от шрифта.

Размер записи в символах. [...] Для пропорциональных шрифтов физическая длина виджета будет зависеть от средней ширины символа, умноженной на значение параметра ширины.

Есть ли способ создать виджет Entry квадратной формы с одинаковой шириной и высотой?

Подробнее здесь: https://stackoverflow.com/questions/798 ... s-integers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»