Форум сайта python.su
Здравствуйте форумчане!
Не кидайте палками, я новичок. Очень требуется Ваша помощь!
Имеется кривой кусок моего кода:
import os def Quit(ev): global root root.destroy() def uslov(ev): if var1 == 1: Povolzhe() if var2 == 1: Center() if checkUral == 1: print('hola') if checkSz == 1: print('lola') if checkDv == 1: DV() if checkUg == 1: UG() if checkSib ==1: Sibir() def Povolzhe(ev): # ниже стартуются файлы МР Поволжье os.startfile(r'c:\RepView\Alarm\Kazan OPTS 277 10.38.3.8\Repview.exe') os.startfile(r'C:\RepView\Alarm\Kazan OPTS 277 10.38.3.9\Repview.exe') os.startfile(r'C:\RepView\Alarm\Kazan OPTS 277 10.38.3.10\Repview.exe') os.startfile(r'C:\RepView\Alarm\Kazan OPTS 570 10.38.3.7\Repview.exe') def Ural(ev): a = 1 def Center(ev): a = 1 def SZ(ev): a = 1 def UG(ev): a = 1 def Sibir(ev): a = 1 def DV(ev): a = 1 from tkinter import * root = Tk() # устанавливаем название окна root.title("Rainbow 0.1") # устанавливаем минимальный размер окна root.minsize(200, 250) # выключаем возможность изменять окно root.resizable(width=False, height=False) # создаем рабочую область frame = Frame(root) frame.grid() m = Menu(root) # создается объект Меню на главном окне root.config(menu=m) # окно конфигурируется с указанием меню для него fm = Menu(m) # создается пункт меню с размещением на основном меню (m) m.add_cascade(label="Файл", menu=fm) # пункту располагается на основном меню (m) fm.add_command(label="Создать...") # формируется список команд пункта меню fm.add_command(label="Открыть") fm.add_command(label="Выход") hm = Menu(m) # второй пункт меню m.add_cascade(label="Помощь", menu=hm) hm.add_command(label="О программе") hm.add_command(label="Bug report") #Создал элементы граффического интерфейса Label(root, text="Выберите регион:").grid(row=0, sticky=W) var1=IntVar() var2=IntVar() var3=IntVar() var4=IntVar() var5=IntVar() var6=IntVar() var7=IntVar() checkPov = Checkbutton(root, text="МР Поволжье", bg="red", variable=var1, onvalue=1,offvalue=0).grid(row=1, sticky=W) checkCen = Checkbutton(root, text="МР Центр", bg="orange", variable=var2, onvalue=1,offvalue=0).grid(row=2, sticky=W) checkUral = Checkbutton(root, text="МР Урал", bg="gold", variable=var3, onvalue=1,offvalue=0).grid(row=3, sticky=W) checkUg = Checkbutton(root, text="МР ЮГ", bg="green", variable=var4, onvalue=1,offvalue=0).grid(row=4, sticky=W) checkSz = Checkbutton(root, text="МР Северо-Запад", bg="deep sky blue", variable=var5, onvalue=1,offvalue=0).grid(row=5, sticky=W) checkSib = Checkbutton(root, text="МР Сибирь", bg="blue", variable=var6, onvalue=1,offvalue=0).grid(row=6, sticky=W) checkDv = Checkbutton(root, text="МР Дальний Восток", bg="dark violet", variable=var7, onvalue=1,offvalue=0).grid(row=7, sticky=W) mainbut = Button(root, text='Применить') mainbut.bind("<Button-1>", uslov) mainbut.place(x = 25, y = 208) quitBtn = Button(root, text = ' Выход ') quitBtn.bind("<Button-1>", Quit) quitBtn.place(x = 120, y = 208) root.mainloop()
Офлайн
Не нужно привязывать выполнение заполненного чекбокса к кнопке “Применить”.
Нужно привязать к кнопке “Применить” функцию, которая считывает значения переменных и открывает программы. Значение переменной tkinter считывается методом get(). Например: var1.get()
def open_func(): if var1.get(): # Если единица, то истина. # Открываем список программ if var2.get(): .... button = Button(root, text='Применить', command=open_func)
Отредактировано Rudium (Янв. 14, 2017 16:34:50)
Офлайн
Да можно и без global и без ООП справится…
Офлайн
4kpt_IVТочно. Исправил.
Да можно и без global и без ООП справится…
Офлайн