Я создаю окно с несколькими вкладками, используя Блокнот и на одной из вкладок «Флажок» будет создаваться динамически в зависимости от значений в Excel.(Я могу читать значения из Excel и создать флажок).Поле Количество проверок будет равно числовым значениям в Excel.
В моем Excel у меня есть значения от 1 до 30 .Но я вижу значения до 1 до 11 и другие значения не отображаются в пользовательском интерфейсе, но полоса прокрутки не активна.
Пожалуйста, помогите мне с этим.
import tkinter as tk
from dicttoxml import dicttoxml
import xlrd
import GetValueFromExcel
from GetValueFromExcel import ExcelValue
from array import array
from tkinter import *
from tkinter import ttk, Button
from tkinter import *
root = Tk()
CheckBoxSelection=[]
NameOfVariable=[]
KeyName=[]
SelectedCheckbox=[]
dict={}
frame_main = tk.Frame(root)
frame_main.grid(sticky='news')
canvas=tk.Canvas()
class UICreation():
def __init__(self):
print ("I m in __init__")
self.nb=ttk.Notebook(frame_main)
self.page1=ttk.Frame(self.nb)
self.page2=ttk.Frame(self.nb)
def tabcreation(self):
print ("I M in Tab Creation")
self.nb.add(self.page1,text="Select")
canvas = tk.Canvas(self.page1)
canvas.grid(row=0, column=0, sticky="news")
vsb = tk.Scrollbar(self.page1, orient="vertical", command=canvas.yview)
vsb.grid(row=0, column=1, sticky='ns')
canvas.configure(yscrollcommand=vsb.set)
canvas.config(scrollregion=canvas.bbox("all"))
f = tk.Frame(canvas)
canvas.create_window((200, 0), window=f, anchor="n")
self.nb.add(self.page2,text="Add")
self.nb.grid(sticky=N)
print ("I M in checkBox")
ListNumber=len(List_key)
print (ListNumber)
for value in range(0,ListNumber, 1):
NameOfVariable= "checkBox" + str(value)
CheckBoxSelection.append("var"+str(value))
CheckBoxSelection[value]=IntVar()
NameOfVariable = Checkbutton(f, text=str(List_key[value]),variable=CheckBoxSelection[value])
Checkbutton()
NameOfVariable.grid(sticky=NW)
NameOfVariable.cget("text")
KeyName.append(NameOfVariable.cget("text"))
def button(self):
button = Button(frame_main, text="Submit", command=self.OnButtonClick)
button.grid(sticky=NW)
def OnButtonClick(self):
index = 0
SelectedCheckboxValue=[]
for st in (CheckBoxSelection):
if st.get():
SelectedCheckboxKey=KeyName[index]
SelectedCheckboxValue=GetValueFromExcel.row_data_dict[SelectedCheckboxKey]
index+=1
dict={
"Properties": {"id": "ConnectJetSerialNumber"+SelectedCheckboxKey,"value":SelectedCheckboxValue[0],"PrinterName":SelectedCheckboxValue[1],"PrinterName2":SelectedCheckboxValue[2]}
}
print(dict)
xml = dicttoxml(dict, custom_root='test', attr_type=False)
file=open(r"C:\SmallVille\SmallVilleAutoConfigGUI\Selected.xml","a")
file.write(str(xml))
else:
index+=1
if __name__ == '__main__':
ui = UICreation()
ev = GetValueFromExcel.ExcelValue()
t=ev.readExcelValue()
print("I am before print t")
print(t)
print("I am before list")
List_key= list(t.keys())
print (List_key)
ui.tabcreation()
ui.button()
root.mainloop()
Снимок экрана пользовательского интерфейса также прилагается