Python
Как сделать одноразовую кнопку в pthon?
Я знаю как сделать кнопку в tkinter. Но она у меня получается многоразовой. А как сделать так что бы ты на неё нажал и она отключалась?
Для создания одноразовой кнопки в tkinter, вы можете использовать метод `configure` для изменения свойства кнопки после ее нажатия. Вот пример кода:
import tkinter as tk
def button_clicked():
print("Кнопка нажата")
button.configure(state=tk.DISABLED) # Отключаем кнопку
root = tk.Tk ()
button = tk.Button(root, text="Нажми меня", command=button_clicked)
button.pack()
root.mainloop()
python
import tkinter as tk
def button_clicked():
print("Кнопка нажата")
button.configure(state=tk.DISABLED) # Отключаем кнопку
root = tk.Tk()
button = tk.Button(root, text="Нажми меня", command=button_clicked)
button.pack()
root.mainloop()
python import tkinter as tk
def button_clicked():
print("Кнопка нажата")
button.configure(state=tk.DISABLED) # Отключаем кнопку
root = tk.Tk ()
button = tk.Button(root, text="Нажми меня", command=button_clicked)
button.pack()
root.mainloop()
Илья. Иииггг
Работает. Благодарю
Можно сделать это дефолтным способом, работает для любой функции.
import tkinter as tk
pressed=0
def button_clicked():
global pressed
if not pressed:
print("Кнопка нажата")
pressed=1
root = tk.Tk()
button = tk.Button(root, text="Нажми меня", command=button_clicked)
button.pack()
root.mainloop()
При этом можно указать, что будет происходить с кнопкой, к примеру чтобы у нее поменялся цвет. import tkinter as tk
pressed=0
def button_clicked():
global pressed
if not pressed:
print("Кнопка нажата")
pressed=1
button.config(text="Кнопка была нажата",bg="black")
root = tk.Tk()
button = tk.Button(root, text="Нажми меня", command=button_clicked)
button.pack()
root.mainloop()
Alexandr Petrov
Или вот еще покруче способ.
import tkinter as tk
def button_clicked():
if button["text"] == "Нажми меня":
print("Кнопка нажата")
button["text"] = "Кнопка была нажата"
button["bg"] = "black"
button["fg"] = "white"
root = tk.Tk()
button = tk.Button(root, text="Нажми меня", command=button_clicked)
button.pack()
root.mainloop()
Alexandr Petrov
Но лучше вообще вот так
import tkinter as tk
def button_clicked():
button["text"] = "Кнопка была нажата"
button["bg"] = "black"
button["state"] = "disabled"
button["disabledforeground"] = "white"
print("Кнопка нажата")
root = tk.Tk()
button = tk.Button(root, text="Нажми меня", command=button_clicked)
button.pack()
root.mainloop()
Для этого можно использовать метод `config` кнопки, чтобы задать ей функцию "нажатия" (command), которая будет вызываться только один раз. После этого, установите свойство `state` кнопки в "disabled", чтобы предотвратить возможность повторного нажатия. Примерный код будет выглядеть так:
from tkinter import *
root = Tk()
def only_once():
# код, который должен выполниться только один раз
btn.config(state='disabled') # кнопка становится неактивной
btn = Button(root, text='Нажми меня', command=only_once)
btn.pack()
root.mainloop()
from tkinter import *
root = Tk()
def only_once():
# код, который должен выполниться только один раз
btn.config(state='disabled') # кнопка становится неактивной
btn = Button(root, text='Нажми меня', command=only_once)
btn.pack()
root.mainloop()
Похожие вопросы
- Разве Нейросети сложно. Встретил школьника, он сказал что его попросили сделать распознавание цветов. Сделал за 2 дня
- Что нужно сделать что-бы программа работала?
- Помогите, как сделать авторизацию в программе на python?
- Как сделать несколько условий для оператора в Python 3?
- Как в python сделать прозрачный цвет
- Какие хорошие игры сделаны на Python? Что на нем можно сделать серьезного?
- сделать из текстового документа словарь
- Как сделать игру в godot?
- Возрастное ограничение в Python, как его сделать?
- Помогите пожалуйста, я начинающий программист и я столкнулся с проблемой. Как сделать локализацию Minecraft Python API?