Форум сайта python.su
0
Добрый день. Нужна помощь в следующем вопросе.
Имеется файл состоящий из определенного ко-ва строк (их количество может меняться).
Необходимо привязать эти строки к Checkbutton-меню существующей программы. Оговорюсь, что программа всегда имеет доступ к файлу, определяет количество его строк и может понимать что и в какой строке написано.
Задача - связать имеющиеся данные с меню Checkbutton:
- кол-во строк - это кол-во пунктов меню;
- содержание этих строк - это атрибут “text” данных пунктов меню.
Может кто-то сталкивался с подобным вопросом и знает как это лучше реализовать?
Благодарю.
Офлайн
0
В общем, вроде немного разобрался.
Кому интересно, ответ выглядит примерно так:
…
f = open(r'd:\My\1.txt') app = f.readlines() root.vars={} for q in app: root.var=StringVar() Checkbutton(root, text=q, variable=root.var).grid() root.vars[q] = root.var
Отредактировано Submersed (Янв. 10, 2016 15:18:32)
Офлайн
0
Приветствую.
Просьба помочь с настигнувшей проблемой. В программировании новичок, поэтому хотелось бы услышать ваши советы и рекомендации.
Столкнулся со следующей проблемой…
На основе строк из текстового файла формирую меню Checkbutton.
Строки в файле разделены символом “*”: первая часть - текст кнопки Checkbutton, вторая - значение “onvalue”
Нужно определить какие из кнопок Checkbutton отмечены галочкой и записать “onvalue”-значения этих кнопок в другой файл. Но, сделать это никак не получается.
Помогите, кто чем может ))
Ниже - моя попытка написать скрипт:
... #Рисуем Checkbutton-меню на основе строк в файле i=1 u=2 root.vars={} for q in app0: root.var=StringVar() x0 = q.split('*')[0] x1 = q.split('*')[1] ch0 = Checkbutton(canvas0,text=x0,variable=root.var,onvalue='x1',offvalue='') ch0.grid(row=u,column=i,ipadx=45,padx=2,pady=10,sticky='nsew') ch0.grid_propagate(False) #print(x1) if i<4: i+=1 else: u+=1 i=1 root.vars[q] = root.var #Подключаем метод, т.к. есть возможность выбрать файл откуда считаются строки def checkr(event): v = countryvar.get() if v == file[0]: if canvas1.winfo_viewable(): canvas1.pack_forget() elif canvas2.winfo_viewable(): canvas2.pack_forget() elif canvas3.winfo_viewable(): canvas3.pack_forget() canvas0.pack(side=LEFT,fill=BOTH,expand=True) canvas0.pack_propagate(False) elif v == file[1]: if canvas0.winfo_viewable(): canvas0.pack_forget() elif canvas2.winfo_viewable(): canvas2.pack_forget() elif canvas3.winfo_viewable(): canvas3.pack_forget() canvas1.pack(side=LEFT,fill=BOTH,expand=True) canvas1.pack_propagate(False) i=1 u=2 root.vars={} for q in app1: x0 = q.split('*')[0] x1 = q.split('*')[1] root.var=StringVar() ch1 = Checkbutton(canvas1,text=x0,variable=root.var,onvalue=x1,offvalue='') ch1.grid(row=u,column=i,ipadx=45,padx=2,pady=10,sticky='nsew') ch1.grid_propagate(False) if i<4: i+=1 else: u+=1 i=1 ch1.state(['selected']) root.vars[q] = root.var elif v == file[2]: if canvas0.winfo_viewable(): canvas0.pack_forget() elif canvas1.winfo_viewable(): canvas1.pack_forget() elif canvas3.winfo_viewable(): canvas3.pack_forget() canvas2.pack(side=LEFT,fill=BOTH,expand=True) canvas2.pack_propagate(False) i=1 u=2 root.vars={} for q in app2: x0 = q.split('*')[0] x1 = q.split('*')[1] root.var=StringVar() ch2 = Checkbutton(canvas2,text=x0,variable=root.var,onvalue=x1,offvalue='') ch2.grid(row=u,column=i,ipadx=45,padx=2,pady=10,sticky='nsew') ch2.grid_propagate(False) if i<4: i+=1 else: u+=1 i=1 ch2.state(['selected']) root.vars[q] = root.var elif v == file[3]: if canvas1.winfo_viewable(): canvas1.pack_forget() elif canvas2.winfo_viewable(): canvas2.pack_forget() elif canvas0.winfo_viewable(): canvas0.pack_forget() canvas3.pack(side=LEFT,fill=BOTH,expand=True) canvas3.pack_propagate(False) i=1 u=2 root.vars={} for q in app3: x0 = q.split('*')[0] x1 = q.split('*')[1] root.var=StringVar() ch3 = Checkbutton(canvas3,text=x0,variable=root.var,onvalue=x1,offvalue='') ch3.grid(row=u,column=i,ipadx=45,padx=2,pady=10,sticky='nsew') ch3.grid_propagate(False) if i<4: i+=1 else: u+=1 i=1 ch3.state(['selected']) root.vars[q] = root.var
Офлайн