Как сделать кнопку прозрачной tkinter

Добавил пользователь Евгений Кузнецов
Обновлено: 04.10.2024

Для создания кнопки используется конструктор Button() . В этом конструкторе с помощью параметра text можно установить текст кнопки:

Чтобы сделать элемент видимым, у него вызывается метод pack() . В итоге вверху окна будет красоваться кнопка:

Каждый виджет, в том числе кнопка, имеет ряд атрибутов, которые влияют на ее визуализацию и которые мы можем настроить через конструктор:

Параметры bg - background и fg - foreground получают значение цвета. Результат выполнения:

Всего же конструктор Button может принимать следующие параметры:

Параметр master представляет ссылку на родительский контейнер. В случае выше это могло бы быть само графическое окно, и мы могли написать:

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

Второй параметр options представляет набор параметров, которые мы можем установить по их имени:

Имена переменным нужно задавать корректно: состоят из двух слов (или более), отражающих суть содержания объекта, слова соединяются нижним подчеркиванием.

Я делаю игру в Tkinter, и мне бы очень хотелось, чтобы в игре были частично прозрачные изображения по понятным причинам.

Как бы я это сделал? PNG не допускает прозрачность, а JPEG допускает прозрачность, но не считается "файлом изображения". Какой тип файла позволил бы это? Можно ли как-нибудь использовать растровое изображение, чтобы сделать JPEG пригодным для использования? Спасибо!

Некоторые используют информацию:

Я начал изучать Python 3 месяца назад и не очень хорошо, но я знаю классы, функции и как делать вещи в Tkinter. Я также, очевидно, знаю намного больше, но, как я сказал, я не слишком хорош в этом. Спасибо!

2 ответа

Tkinter распознает файлы.ico, но я никогда не использовал их, кроме как значок в левом верхнем углу.

Я хотел бы использовать GIF-файл, и tk.PhotoImage показать это. Это позволяет отображать прозрачные изображения:


Изображение в окне tk, но когда я изменяю цвет фона на желтый, фон кнопки такой же, как фон окна tk, поэтому он прозрачный.

Python Tkinter. Часть 2

Как изменить цвет текста на кнопке и цвет самой кнопки в Tkinter?

Сражу покажу код:

btn = Button(window, text="Нажмите на кнопку", bg="pink", fg="white")

Но кнопка сама по себе мало что значит, если после нажатия на нее ничего не происходит. Поэтому на кнопку надо добавить какое-либо действие. Делается это с помощью обработчиков событий (по аналогии с JavaScript).

def btnClicked():
lbl.configure(text="Вы нажали на кнопку. ")

// window - ссылка на окно
// text - текст кнопки
// command - ссылка на обработчик нажатия клавиши
btn = Button(window, text="Нажмите на кнопку", command=btnClicked)

Полный код:

from tkinter import *

window.title("Мое приложение")
window.geometry('350x200')

lbl = Label(window, text="Метка")
lbl.grid(column=0, row=0)


def btnClicked():
lbl.configure(text="Вы нажали на кнопку. ")

// window - ссылка на окно
// text - текст кнопки
// command - ссылка на обработчик нажатия клавиши
btn = Button(window, text="Нажмите на кнопку", command=btnClicked)
btn.grid(column=1, row=0)

Считываем пользовательский ввод через Entry класс (текстовое поле Tkinter)

В следующем фрагменте кода мы будем получать пользовательский ввод:

Далее добавим поле ввода в окно и полный код будет выглядеть следующим образом:

from tkinter import *

window.title("Мое приложение")
window.geometry('350x200')

lbl = Label(window, text="Метка")
lbl.grid(column=0, row=0)

// текстовое поле
txt = Entry(window,width=10)
txt.grid(column=1, row=0)

def btnClicked():
lbl.configure(text="Вы нажали на кнопку. ")

// window - ссылка на окно
// text - текст кнопки
// command - ссылка на обработчик нажатия клавиши
btn = Button(window, text="Нажмите на кнопку", command=btnClicked)
btn.grid(column=1, row=0)

Таким образом, вот так можно добавить обработчики событий на кнопку в Python Tkinter.


Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

Комментарии ( 0 ):

Левая кнопка отключена (серый цвет отсутствует), а правая - обычная.

Состояния могут быть изменены словарным методом или конфигурационным методом.

При нажатии кнопки2 вызывается функция switchButtonState для переключения состояния button1 из DISABLED в NORMAL или наоборот.

state - это опция виджета Tkinter Button . Все опции виджета Button являются клавишами Button в виде словаря.

Обновление state происходит путем изменения значения state в Button словаря.

Также state может быть изменено с помощью метода config объекта Button . Таким образом, функция switchButtonState() также может быть реализована, как показано ниже,

Даже строки normal и disabled могут быть просто использованы вместо tk.NORMAL и tk.DISABLED .

Сопутствующая статья - Tkinter Button


report this ad

Читайте также: