从用户输入创建python excel单元格
我正在尝试使用tkinter从用户那里获取输入。它需要一个号码。然后我想取这个数字并创建excel单元格的数量。我有自己的“excelcells”函数,但当我试图将变量x作为一个数字并将其转换为一个列表时,我会遇到转换错误,我无法克服从用户输入创建python excel单元格,python,tkinter,Python,Tkinter,我正在尝试使用tkinter从用户那里获取输入。它需要一个号码。然后我想取这个数字并创建excel单元格的数量。我有自己的“excelcells”函数,但当我试图将变量x作为一个数字并将其转换为一个列表时,我会遇到转换错误,我无法克服 from tkinter import * window = Tk() Label(window, text='Number of Cells').grid(row=0) e1 = Entry(window) e1.grid(row=0, column=1)
from tkinter import *
window = Tk()
Label(window, text='Number of Cells').grid(row=0)
e1 = Entry(window)
e1.grid(row=0, column=1)
get = e1.get()
numfinal = int(get)
x = []
for i in range(0,int(numfinal)):
x.append(i)
def excelcells(x):
height = 1
for i in range(height):
for j, val in enumerate(x):
b = Entry(window)
b.insert(0, val)
b.grid(row=i, column=j)
window.mainloop()
Button(window, text='Create', command=excelcells(x)).grid()
window.mainloop()
这是我得到的错误“无法将字符串转换为浮点:'get'”
单击“创建”按钮时,如何将x列表传递给“excelcells”函数?并将输入窗口的字符串转换为int
第2部分:
如何将get变量从字符串转换为int
当前错误:以10为基数的int()的文本无效:“”这里有几个问题。 首先,命令在
按钮(窗口,text='Create',command=excelcells(x)).grid()
应该是一个函数,编写excelcells(x)
实际上调用函数而不是传递它。(可以使用command=lambda x:excelcells(x)
完成,但这并不是您真正想要的)
现在,导致错误的问题是该位:
get = e1.get()
numfinal = int(get)
在创建条目后立即按顺序执行,因此您在程序有机会访问window.mainloop()之前读取,该窗口弹出并等待用户交互
第三个问题是在函数中调用mainloop,这将在以后导致不必要的行为
总之,我相信你想要的是这样的:
从tkinter导入*
window=Tk()
标签(窗口,text='单元格数')。网格(行=0)
e1=入口(窗口)
e1.网格(行=0,列=1)
def excelcells():
get=int(e1.get())
对于范围内的i(获取):
b=入口(窗口)
b、 插入(0,i)
b、 网格(行=i+2,列=0)
按钮(窗口,text='Create',command=excelcells).grid()
window.mainloop()
float('get')
?或者你的意思是float(get)
?command=excelcells(x)
应该是command=lambda:excelcells(x)
。请参阅以了解至少部分问题。@jizhaosama是的,很抱歉这是以前的错误。它仍然会抛出一个getmy错误,问题是如何将get从字符串转换为int?我的标签(窗口,text='Number of Cells')。网格(行=0)e1=Entry(窗口)e1.grid(行=0,列=1)get=e1.get()numfinal=int(get)x=[]对于范围(0,int(numfinal)):x.append(i)错误:以10为基数的int()的文本无效:“”