Как настроить ширину кнопки с изображением в tkinter на python?

Код:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

image = tk.PhotoImage(file = "image.png")
button = ttk.Button(root, image = image)
button.pack()

root.mainloop()

Неудачные попытки увеличить ширину кнопки:

  1. Указать width.
  2. Указать padx.
  3. Указать text как несколько пробелов.

Кнопка нужна именно из ttk. Как изменить ширину кнопки с изображением?


Ответы (2 шт):

Автор решения: AndroID

Нашёл решение. Буду использовать фрейм как родитель кнопке, у которой будет pack(fill = tk.BOTH). А размеры кнопки будут регулировать размерами родителя.

UPD: На root кнопка изменяет размер, но при Frame она не учитывает размеры родителя. Вопрос ещё не решён.

UPD: После поиска возможных решений работающим оказалось одно - изменение файла изображения с добавлением пустоты по краям.

UPD: Решение найдено! В метод place можно передать параметры width и height в пикселях. Кнопка с изображением охотно меняет размеры. Наконец, вопрос закрыт.

→ Ссылка
Автор решения: Werosokin0897

Первое решение которое приходит в голову, просто расширить картинку (например, с помощью Photoshop, там можно убрать белый фон и останется фон прозрачный), таким образом можно настраивать и длину, и высоту кнопки, а её размер (если работать в фотошопе) будет определятся размерами документа. Если найду решение кодом, вам напишу.

→ Ссылка