Уведомления

Группа в Telegram: @pythonsu

#1 Март 22, 2021 14:34:39

DarkNeco
Зарегистрирован: 2021-03-22
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести в текстовое окошко информацию о том, что нажаты определенные флажки

В колледже дали вот такое задание по python:
Напишите следующую программу. На главном окне находится несколько флажков и текстовое поле. При щелчке левой кнопкой мыши в пределах текстового поля в нем должны отображаться значения включенных флажки (появляться сообщение о том, какие флажки включены), при щелчке правой кнопкой мыши — значения выключенных флажков.
Я написал вот такой код:

 from tkinter import *
root=Tk()
c1=IntVar()
c2=IntVar()
c3=IntVar()
c4=IntVar()
c5=IntVar()
che1=Checkbutton(root,text="1",
   variable=c1,onvalue=1,offvalue=0)
che2=Checkbutton(root,text="2",
   variable=c2,onvalue=1,offvalue=0)
che3=Checkbutton(root,text="3",
   variable=c3,onvalue=1,offvalue=0)
che4=Checkbutton(root,text="4",
   variable=c4,onvalue=1,offvalue=0)
che5=Checkbutton(root,text="5",
   variable=c5,onvalue=1,offvalue=0)
tx=Text(root,height=10,width=15)
def clk1(event):
if che1=="1":
tx.delete(1.0,END)
tx.insert(END,"выбран флажок #1 /n")
if che2=="1":
tx.delete(1.0,END)
tx.insert(END,"выбран флажок #2 /n")
if che3=="1":
tx.delete(1.0,END)
tx.insert(END,"выбран флажок #3 /n") if che4=="1":
tx.delete(1.0,END)
tx.insert(END,"выбран флажок #4 /n")
if che5=="1":
tx.delete(1.0,END)
tx.insert(END,"выбран флажок #5 /n")
def clk3(event):
if che1=="0":
tx.delete(1.0,END)
tx.insert(END,"флажок #1 не был выбран /n")
if che1=="0":
tx.delete(1.0,END)
tx.insert(END,"флажок #1 не был выбран /n")
if che2=="0":
tx.delete(1.0,END)
tx.insert(END,"флажок #2 не был выбран /n")
if che3=="0":
tx.delete(1.0,END)
tx.insert(END,"флажок #3 не был выбран /n")
if che4=="0":
tx.delete(1.0,END)
tx.insert(END,"флажок #4 не был выбран /n")
if che5=="0":
tx.delete(1.0,END)
tx.insert(END,"флажок #5 не был выбран /n")
tx.pack()
che1.pack()
tx.bind("<Button-1>",clk1)
tx.bind("<Button-3>",clk3)
root.mainloop()
На первой же строке
 tx.insert(END,"выбран флажок #1 /n")
if che2=="1":
выдает ошибку: Invalid syntax. Я так понимаю, дело в том, что циклы if открытые относительно друг друга, но как это исправить так, чтобы это работало, не понимаю.
Также буду признателен, если укажете мне на ошибки. Спасибо!!!

Отредактировано DarkNeco (Март 22, 2021 14:49:27)

Офлайн

#2 Март 22, 2021 15:38:21

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Вывести в текстовое окошко информацию о том, что нажаты определенные флажки

DarkNeco у вас отступы неправильно стоят.
Неправильно:

 if Условие:
Выражение1
Выражение2
...
ВыражениеN
Правильно:
 if Условие:
    Выражение1
    Выражение2
    ...
    ВыражениеN



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Март 22, 2021 15:38:55)

Офлайн

#3 Март 22, 2021 15:50:54

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1370
Репутация: +  121  -
Профиль   Отправить e-mail  

Вывести в текстовое окошко информацию о том, что нажаты определенные флажки

 from tkinter import *
root=Tk()
c1=IntVar()
c2=IntVar()
c3=IntVar()
c4=IntVar()
c5=IntVar()
che1=Checkbutton(root,text="1",
   variable=c1,onvalue=1,offvalue=0)
che2=Checkbutton(root,text="2",
   variable=c2,onvalue=1,offvalue=0)
che3=Checkbutton(root,text="3",
   variable=c3,onvalue=1,offvalue=0)
che4=Checkbutton(root,text="4",
   variable=c4,onvalue=1,offvalue=0)
che5=Checkbutton(root,text="5",
   variable=c5,onvalue=1,offvalue=0)
tx=Text(root,height=10,width=15)
def clk1(event):
	print(c1.get())
	if c1.get() == 1:
		tx.delete(1.0,END)
		tx.insert(END,"выбран флажок #1 /n")
	if che2=="1":
		tx.delete(1.0,END)
		tx.insert(END,"выбран флажок #2 /n")
	if che3=="1":
		tx.delete(1.0,END)
		tx.insert(END,"выбран флажок #3 /n")
	if che4=="1":
		tx.delete(1.0,END)
		tx.insert(END,"выбран флажок #4 /n")
	if che5=="1":
		tx.delete(1.0,END)
		tx.insert(END,"выбран флажок #5 /n")
def clk3(event):
	if c1.get() == 0:
		tx.delete(1.0,END)
		tx.insert(END,"флажок #1 не был выбран /n")
	if che1=="0":
		tx.delete(1.0,END)
		tx.insert(END,"флажок #1 не был выбран /n")
	if che2=="0":
		tx.delete(1.0,END)
		tx.insert(END,"флажок #2 не был выбран /n")
	if che3=="0":
		tx.delete(1.0,END)
		tx.insert(END,"флажок #3 не был выбран /n")
	if che4=="0":
		tx.delete(1.0,END)
		tx.insert(END,"флажок #4 не был выбран /n")
	if che5=="0":
		tx.delete(1.0,END)
		tx.insert(END,"флажок #5 не был выбран /n")
tx.pack()
che1.pack()
tx.bind("<Button-1>",clk1)
tx.bind("<Button-3>",clk3)
root.mainloop()

когда не знаете что в переменной,то выведите ее с помощью print(переменная), заначения 1 или 0 в с = IntVar()

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version