Я хочу изменить цвет фона кнопки при нажатии в графическом интерфейсе tkinter - PullRequest
2 голосов
/ 04 мая 2019

У меня есть код GUI Python, чтобы открывать и закрывать. Мне нужно изменить код, например, когда я нажимаю кнопку открытия, цвет кнопки становится зеленым, а когда я нажимаю кнопку закрытия, цвет кнопки открытия меняется на цвет по умолчанию.

from serial import*
from time import*
from tkinter import*

window = Tk()

def open_command():
    print("Opening")

def close_command():
    print("Closing")

b = Button(window, text = "Open", font = ("Times New Roman", 12), fg = "green", bg = "white", height = 1, width = 5, command = open_command).pack()
b = Button(window, text = "Close", font = ("Times New Roman", 12), fg = "red", bg = "white", height = 1, width = 5, command = close_command).pack()

mainloop()

при нажатии кнопки открытия цвет кнопки открытия должен изменить цвет по умолчанию на зеленый. Если нажать кнопку «Закрыть», цвет кнопки «Закрыть» должен измениться на красный, а цвет кнопки «Открыть» изменится на цвет по умолчанию.

Ответы [ 2 ]

1 голос
/ 06 мая 2019

Вы можете просто использовать .config(bg=...), чтобы изменить цвет фона кнопки на любой цвет, который вы хотите, как показано ниже:

import tkinter as tk

window = tk.Tk()

def open_command():
    open_btn.config(bg='green')
    close_btn.config(bg='white')

def close_command():
    open_btn.config(bg='white')
    close_btn.config(bg='red')

font=('Times New Roman', 12)
open_btn = tk.Button(window, text='Open', font=font, fg='green', bg='white', width=5, command=open_command)
open_btn.pack()
close_btn = tk.Button(window, text='Close', font=font, fg='red', bg='white', width=5, command=close_command)
close_btn.pack()

window.mainloop()
0 голосов
/ 04 мая 2019

Я сделал некоторые изменения в коде и добавил комментарии, если вы ничего не понимаете, скажите мне.Должны быть лучшие решения для этого (я не так хорош в tkinter), но этого должно быть достаточно для тестирования, я думаю ...


from serial import*
from time import*
from tkinter import*

window = Tk()


def open_command():
    print("Opening")
    # i destroy button here which was before and create new one
    global b1
    b1.destroy()
    b1 = Button(window, text="Open", font=("Times New Roman", 12), fg="green", bg="green", height=1, width=5,
                command=open_command)
    b1.grid(row=1)


def close_command():
    print("Closing")
    global b2
    b2.destroy()
    b2 = Button(window, text="Close", font=("Times New Roman", 12), fg="red", bg="green", height=1, width=5,
                command=close_command)
    b2.grid(row=2)


# first of all you need b1 and b2 (you had b and b (same buttons))
b1 = Button(window, text="Open", font=("Times New Roman", 12), fg="black", bg="white", height=1, width=5,
            command=open_command)
# i use grid instead of pack because it is placed exactly where you want
b1.grid(row=1)

b2 = Button(window, text="Close", font=("Times New Roman", 12), fg="black", bg="white", height=1, width=5,
            command=close_command)
b2.grid(row=2)

mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...