Python 获取错误:索引器错误:列表索引超出范围';

Python 获取错误:索引器错误:列表索引超出范围';,python,tkinter,tkinter-canvas,Python,Tkinter,Tkinter Canvas,我正在尝试为tkinter编写代码。这是代码。这是可以核实的。你可以输入任何数字来验证这一点 import tkinter as tk rectangle_values = [] rectangle_number = [] temp_recta = [] temp_rectn = [] rcta = [] rctn = [] area_var = 0 minw = 0 maxw = 0 minl = 0 maxl = 0 are_a = 0 comp = 0 h = 0 def open_

我正在尝试为tkinter编写代码。这是代码。这是可以核实的。你可以输入任何数字来验证这一点

import tkinter as tk


rectangle_values = []
rectangle_number = []
temp_recta = []
temp_rectn = []
rcta = []
rctn = []
area_var = 0
minw = 0
maxw = 0
minl = 0
maxl = 0
are_a = 0
comp = 0
h = 0

def open_window(rect, mnw,mxw,mnl,mxl):
    window.title('Rectangles')
    global minw
    global maxw
    global minl
    global maxl
    global are_a
    global comp
    global h
    global rectangle_values
    global rectangle_number



    minw = mnw
    maxw = mxw
    minl = mnl
    maxl = mxl
    comp = rect
    x, y, z, j = 400, 405, 405, 1

    l9 = tk.Label(canvas, text="각 Component 입력 정보", font= "calibri 14 bold", bg="white")
    canvas.create_window(30,345, window=l9, anchor=tk.NW)

    l10 = tk.Label(canvas, text="CW", font= "calibri 14", bg="white")
    canvas.create_window(200,370, window=l10, anchor=tk.NW)

    l11 = tk.Label(canvas, text="CH", font= "calibri 14", bg="white")
    canvas.create_window(335,370, window=l11, anchor=tk.NW)    

    l12 = tk.Label(canvas, text="공급사 모재 면적 정보", font= "calibri 14 bold", bg="white")
    canvas.create_window(460,350, window=l12, anchor=tk.NW) 

    l12 = tk.Label(canvas, text="Area", font= "calibri 14", bg="white")
    canvas.create_window(470,380, window=l12, anchor=tk.NW)

    poscoimg3 = tk.PhotoImage(file="C:/Users/sel/Desktop/poscoimg3.png")
    canvas.create_image(700,360, image=poscoimg3, anchor=tk.NW)
    canvas.poscoimg3 = poscoimg3

    area_var = tk.DoubleVar()
    entry_area_number = tk.Entry(canvas, textvariable=area_var)
    canvas.create_window(590,395, window=entry_area_number)





    for i in range(0, rect * 2):         
        if (i % 2) == 0: 
            l1 = tk.Label(canvas, text="Component %d" %(j), font= "calibri 13", bg="white")
            canvas.create_window(30, x, window=l1, anchor=tk.NW)
            rectangle_values.append(tk.StringVar())
            j +=1
            x +=30

            en = tk.Entry(canvas, textvariable=rectangle_values[i])
            canvas.create_window(150, y, window=en, anchor=tk.NW)
            y +=30

        if (i % 2) != 0:
            rectangle_values.append(tk.StringVar())            
            en = tk.Entry(canvas, textvariable=rectangle_values[i])
            canvas.create_window(285, z, window=en, anchor=tk.NW)
            z +=30
    h=y       

    #for j in range(0, rect):
        #rectangle_number.append(tk.StringVar())            
        #en = tk.Entry(canvas, textvariable=rectangle_number[j])
        #canvas.create_window(400, f, window=en, anchor=tk.NW)
        #f +=20

    proceed_button = tk.Button(canvas, text="Run",font= "calibri 13", command=lambda: first_step(area_var.get()))
    canvas.create_window(470, 420, window=proceed_button, anchor=tk.NW)
    canvas.configure(scrollregion=canvas.bbox("all"))


def first_step(e):
    global temp_recta
    global temp_rectn
    global rcta
    global rctn
    global comp
    global are_a

    are_a = e

    for r in range(0, comp * 2):
        temp_recta.append(rectangle_values[r].get())
    for i in range(len(temp_recta)):
        t = int(temp_recta[i])
        rcta.append(t)
    for r in range(0, comp):
        temp_rectn.append(rectangle_number[r].get())
    for i in range(len(temp_rectn)):
        t = int(temp_rectn[i])
        rctn.append(t)  
    cal_culate()


window = tk.Tk()
window.configure(background='white')



ws = window.winfo_screenwidth()
hs = window.winfo_screenheight()
w = 980  # width for the Tk root
h = 600  # height for the Tk root
x = (ws / 2) - (w / 2)
y = (hs / 2) - (h / 2)



window.geometry('%dx%d+%d+%d' % (w, h, x, y))
canvas = tk.Canvas(window, bg="white", width=980, height=580, highlightthickness=0)
canvas.pack()
canvas_scroll = tk.Scrollbar(canvas, command=canvas.yview)
canvas_scroll.place(relx=1, rely=0, relheight=1, anchor=tk.NE)
canvas.configure(yscrollcommand=canvas_scroll.set, scrollregion=())



l0 = tk.Label(canvas, text="강재 NESTING 최적화 프로그램", font= "calibri 32 bold",fg="royalblue4",bg="white" )
canvas.create_window(200,70, window=l0, anchor=tk.NW)

l00 = tk.Label(canvas, text="제조사 시트 입력 정보", font= "calibri 14 bold", bg="white" )
canvas.create_window(30,155, window=l00, anchor=tk.NW)

photo = tk.PhotoImage(file="C:/Users/sel/Desktop/posco.png")
canvas.create_image(800,10, image=photo, anchor=tk.NW)


line = tk.PhotoImage(file="C:/Users/sel/Desktop/line.png")
canvas.create_image(0,130, image=line, anchor=tk.NW)


poscoimg1 = tk.PhotoImage(file="C:/Users/sel/Desktop/poscoimg1.png")
canvas.create_image(500,180, image=poscoimg1, anchor=tk.NW)

poscoimg2 = tk.PhotoImage(file="C:/Users/sel/Desktop/poscoimg2.png")
canvas.create_image(0,340, image=poscoimg2, anchor=tk.NW)

l1 = tk.Label(canvas, text="MIN", font= "calibri 14", bg="white")
canvas.create_window(210,180, window=l1, anchor=tk.NW)


l2 = tk.Label(canvas, text="MAX", font= "calibri 14", bg="white")
canvas.create_window(340,180, window=l2, anchor=tk.NW)


l3 = tk.Label(canvas, text="Sheet 폭(SW)", font= "calibri 13", bg="white")
canvas.create_window(33,200, window=l3, anchor=tk.NW)

minw_var = tk.DoubleVar()
entry_minw_number = tk.Entry(canvas, textvariable=minw_var)
canvas.create_window(220,215, window=entry_minw_number)

maxw_var = tk.DoubleVar()
entry_maxw_number = tk.Entry(canvas, textvariable=maxw_var)
canvas.create_window(355,215, window=entry_maxw_number)

l4 = tk.Label(canvas, text="Sheet 높이(SH)", font= "calibri 13", bg="white")
canvas.create_window(33,230, window=l4, anchor=tk.NW)

minl_var = tk.DoubleVar()
entry_minl_number = tk.Entry(canvas, textvariable=minl_var)
canvas.create_window(220,240, window=entry_minl_number)

maxl_var = tk.DoubleVar()
entry_maxl_number = tk.Entry(canvas, textvariable=maxl_var)
canvas.create_window(355,240, window=entry_maxl_number)

l5 = tk.Label(canvas, text="소요 Component 개수", font= "calibri 13", bg="white")
canvas.create_window(33,260, window=l5, anchor=tk.NW)

rect_var = tk.IntVar()
entry_rect_number = tk.Entry(canvas, textvariable=rect_var)
canvas.create_window(290,270, window=entry_rect_number)

submit_button = tk.Button(canvas, text="Submit",font= "calibri 13", command=lambda: open_window(rect_var.get(),\
                minw_var.get(), maxw_var.get(),minl_var.get(),maxl_var.get()))
canvas.create_window(200, 290, window=submit_button, anchor=tk.NW)
canvas.bind_all('<MouseWheel>', lambda event: canvas.yview_scroll(int(-1*(event.delta/120)), "units"))

def cal_culate():
    print(minw,maxw,minl,maxl,comp,are_a)

window.title("Rectangle Configuration")
window.mainloop()
将tkinter作为tk导入
矩形_值=[]
矩形_编号=[]
温度=[]
温度校正=[]
rcta=[]
rctn=[]
面积=0
minw=0
maxw=0
minl=0
最大值=0
a=0吗
comp=0
h=0
def open_窗口(矩形、mnw、mxw、mnl、mxl):
window.title(“矩形”)
全球水貂
全局最大值
全球minl
全局最大值
全球都是
全球公司
全局h
全局矩形值
全局矩形U数
minw=mnw
maxw=mxw
minl=mnl
maxl=mxl
comp=rect
x、 y,z,j=4004054051
l9=tk.Label(画布,文本=”각 组成部分입력 정보", font=“calibri 14粗体”,bg=“白色”)
canvas.create_window(30345,window=l9,anchor=tk.NW)
l10=tk.标签(画布,text=“CW”,font=“calibri 14”,bg=“白色”)
canvas.create_window(200370,window=l10,anchor=tk.NW)
l11=tk.标签(画布,text=“CH”,font=“calibri 14”,bg=“白色”)
canvas.create_window(335370,window=l11,anchor=tk.NW)
l12=tk.Label(画布,文本=”공급사 모재 면적 정보,font=“calibri 14粗体”,bg=“白色”)
canvas.create_window(460350,window=l12,anchor=tk.NW)
l12=tk.标签(画布,text=“Area”,font=“calibri 14”,bg=“white”)
canvas.create_window(470380,window=l12,anchor=tk.NW)
poscoimg3=tk.PhotoImage(file=“C:/Users/sel/Desktop/poscoimg3.png”)
canvas.create_image(700360,image=poscoimg3,anchor=tk.NW)
canvas.poscoimg3=poscoimg3
area_var=tk.DoubleVar()
entry\u area\u number=tk.entry(canvas,textvariable=area\u var)
画布。创建窗口(590395,窗口=输入区域编号)
对于范围(0,rect*2)内的i:
如果(i%2)==0:
l1=tk.标签(画布,text=“组件%d”%(j),font=“calibri 13”,bg=“白色”)
canvas.create_窗口(30,x,window=l1,anchor=tk.NW)
矩形_values.append(tk.StringVar())
j+=1
x+=30
en=tk.Entry(canvas,textvariable=rectangle\u值[i])
canvas.create_window(150,y,window=en,anchor=tk.NW)
y+=30
如果(i%2)!=0:
矩形_values.append(tk.StringVar())
en=tk.Entry(canvas,textvariable=rectangle\u值[i])
canvas.create_window(285,z,window=en,anchor=tk.NW)
z+=30
h=y
#对于范围(0,矩形)内的j:
#矩形_number.append(tk.StringVar())
#en=tk.Entry(canvas,textvariable=rectangle_number[j])
#canvas.create_window(400,f,window=en,anchor=tk.NW)
#f+=20
继续按钮=tk.button(canvas,text=“Run”,font=“calibri 13”,command=lambda:first\u步骤(area\u var.get())
canvas.create_窗口(470420,窗口=继续按钮,锚点=tk.NW)
configure(scrollregion=canvas.bbox(“全部”))
def第一步(e):
全局温度
全局温度校正
全球rcta
全球rctn
全球公司
全球都是
你是a=e吗
对于范围(0,组件*2)内的r:
temp_recta.append(矩形值[r].get())
对于范围内的i(len(temp_recta)):
t=int(温度[i])
rcta.append(t)
对于范围内的r(0,补偿):
temp_rectn.append(矩形编号[r].get())
对于范围内的i(len(temp_\n)):
t=int(温度校正[i])
rctn.追加(t)
计算公式
window=tk.tk()
window.configure(background='white')
ws=window.winfo_屏幕宽度()
hs=window.winfo_屏幕高度()
w=980#Tk根部的宽度
h=600#Tk根部的高度
x=(w/2)-(w/2)
y=(hs/2)-(h/2)
几何体(“%dx%d+%d+%d%”(w,h,x,y))
canvas=tk.canvas(窗口,bg=“白色”,宽度=980,高度=580,高光厚度=0)
canvas.pack()
canvas\u scroll=tk.Scrollbar(canvas,command=canvas.yview)
canvas_scroll.place(relx=1,rely=0,relheight=1,anchor=tk.NE)
configure(yscrollcommand=canvas\u scroll.set,scrollregion=())
l0=tk.Label(画布,文本=”강재 筑巢최적화 프로그램,font=“calibri 32粗体”,fg=“royalblue4”,bg=“白色”)
canvas.create_window(200,70,window=l0,anchor=tk.NW)
l00=tk.Label(画布,文本=”제조사 시트 입력 정보,font=“calibri 14粗体”,bg=“白色”)
canvas.create_window(30155,window=l00,anchor=tk.NW)
photo=tk.PhotoImage(file=“C:/Users/sel/Desktop/posco.png”)
canvas.create_image(800,10,image=photo,anchor=tk.NW)
line=tk.PhotoImage(file=“C:/Users/sel/Desktop/line.png”)
canvas.create_image(0130,image=line,anchor=tk.NW)
poscoimg1=tk.PhotoImage(file=“C:/Users/sel/Desktop/poscoimg1.png”)
canvas.create_image(500180,image=poscoimg1,anchor=tk.NW)
poscoimg2=tk.PhotoImage(file=“C:/Users/sel/Desktop/poscoimg2.png”)
canvas.create_image(0340,image=poscoimg2,anchor=tk.NW)
l1=tk.标签(画布,text=“MIN”,font=“calibri 14”,bg=“白色”)
canvas.create_window(210180,window=l1,anchor=tk.NW)
l2=tk.标签(画布,text=“MAX”,font=“calibri 14”,bg=“白色”)
canvas.create_window(340180,window=l2,anchor=tk.NW)
l3=tk.Label(画布,text=“工作表폭(SW)”,font=“calibri 13”,bg=“白色”)
canvas.create_window(33200,window=l3,anchor=tk.NW)
minw_var=tk.DoubleVar()
entry\u minw\u number=tk.entry(canvas,textvariable=minw\u var)
canvas.create_window(220215,window=entry_minw_number)
maxw_var=tk.DoubleVar()
entry\u maxw\u number=tk.entry(canvas,textvariable=maxw\u var)
canvas.create_window(355215,window=entry_maxw_number)
l4=tk.Label(画布,text=“工作表높이(SH)”,font=“calibri 13”,bg=“白色”)
canvas.create_window(33230,window=l4,anchor=tk.NW)
minl_var=tk.DoubleVar()
entry\u minl\u number=tk.entry(canvas,textvariable=minl\u var)
canvas.create_window(220240,window=entry_minl_number)
maxl_var=tk.DoubleVar()
entry\u maxl\u number=tk.entry(canvas,textvariable=maxl\u var)
canvas.create_window(355240,window=entry_maxl_number)
l5=tk.Label(画布,文本=”소요 组成部分개수“,font=“calibri 13”,