#python-3.x #tkinter
#python-3.x #tkinter
Вопрос:
from Tkinter import *
window = Tk()
window.config(background="green")
window.bind("<Escape>", quit)
cbttn = Checkbutton(text="Caps?").grid(row=3, column=0)
if cbttn = True
Работает ли это? Или мне нужно переместить .grid()
функцию и переместить ее на следующую строку кода.
Ответ №1:
Назначение, такое как:
cbttn = Checkbutton(text="Caps?").grid(row=3, column=0)
возвращает в cbttn объект, не относящийся к типу None.
Либо удалите присвоение cbttn (если вы не хотите ссылаться на него дальше в скрипте).
Checkbutton(text="Caps?").grid(row=3, column=0)
или переместите сетку на новую строку следующим образом:
cbttn = Checkbutton(text="Caps?")
cbttn.grid(row=3, column=0)
И чтобы узнать, была ли нажата контрольная кнопка или нет, используйте доступный параметр command. Проверьте пример здесь. Взяв этот пример:
from tkinter import *
def display():
print(CheckVar1.get())
top = Tk()
CheckVar1 = IntVar()
CheckVar2 = IntVar()
C1 = Checkbutton(top, text = "Music", variable = CheckVar1,
onvalue = 1, offvalue = 0, height=5,
width = 20, command = display)
C2 = Checkbutton(top, text = "Video", variable = CheckVar2,
onvalue = 1, offvalue = 0, height=5,
width = 20)
C1.pack()
C2.pack()
top.mainloop()
Выходной сигнал должен постоянно переключаться между 0 и 1
Комментарии:
1. Но как мне узнать, была ли она нажата или нет, если я хочу использовать ее в команде if, elif?
2. @PeterGalibaYear7 я отредактировал ответ. Вам не нужно использовать if..elif..else для контрольных кнопок. Надеюсь, это прояснит это
3. Теперь это имеет смысл
4. Обратная трассировка (последний последний вызов): Файл «/data/data/ru.iiec.pydroid3/files/coding folder/alphabet_draw0.1.0.py «, строка 39, в <модуле> текст=Метка (текст=cbttn.переменная) Ошибка атрибута: объект ‘Checkbutton’ не имеет атрибута ‘variable’