скрытие и показ текста при нажатии кнопки в tkinter

Рейтинг: 0Ответов: 1Опубликовано: 23.05.2023
from customtkinter import *
from random import *

set_appearance_mode('System')
set_default_color_theme('green')

root = CTk()

root.title('Название')
root.geometry('600x600')

def rules_click_open():
    rules_frame = CTkFrame(root, width=330, height=140, corner_radius=10)
    rules_frame.place(x = 40, y = 10)
    CTkLabel(rules_frame, text='Текст').place(x = 15, y = 0)
    
rules_btn_open = CTkButton(root, text="?", width=20, height=20, command=rules_click_open)
rules_btn_open.place(x = 10, y = 10)

root.resizable(width=False, height=False)

root.mainloop()

Я бы хотел чтобы при первом клике на кнопку, текст появлялся, а на второй клик исчезал, но я не знаю как это реализовать.

Ответы

▲ 1Принят

Вы можете использовать .place_forget:

from customtkinter import *
from random import *

set_appearance_mode('System')
set_default_color_theme('green')

root = CTk()

root.title('Название')
root.geometry('600x600')


def rules_click_open():
    if rules_frame.winfo_manager():
        rules_frame.place_forget()
        label.place_forget()
    else:
        rules_frame.place(x=40, y=10)
        label.place(x=15, y=0)


rules_frame = CTkFrame(root, width=330, height=140, corner_radius=10)
label = CTkLabel(rules_frame, text='Текст')

rules_btn_open = CTkButton(root, text="?", width=20, height=20, command=rules_click_open)
rules_btn_open.place(x=10, y=10)

root.resizable(width=False, height=False)

root.mainloop()