使用Tkinter时我想动态生成n个输入框时出现问题
我在b站上学龄两个月,是个萌新,我每次想要生成一个新的输入框,必须先初始化Entry生成一个实例,但是这个实例变量必须命名,如何在for循环内给新生成的这个实例变量命不一样的名字,我用了locals,但无法运行我写了一点点的代码如下:
for i in range(a):
Label(root2, text = "请输入第%d个电阻的阻值:"%(i + 1)).grid(row = i, column = 3)
locals()['g'+str(i)] = Entry(root)
('g'+str(i)).grid(row = i, column = 4)
Label(root2, text="第一个结点编号:" % (i + 1)).grid(row=i, column = 5)
locals()['m' + str(i)] = Entry(root)
('m' + str(i)).grid(row = i, column = 6)
Label(root2, text="第二个结点编号:" % (i + 1)).grid(row=i, column = 7)
locals()['n' + str(i)] = Entry(root)
('n' + str(i)).grid(row = i, column = 8)
mainloop()
最后几行就是问题所在 求问我该怎么改 from tkinter import *
root=Tk()
a=5
for i in range(a):
Label(root, text = "请输入第%d个电阻的阻值:"%(i + 1)).grid(row = i, column = 3)
locals()['g'+str(i)] = Entry(root)
locals()['g'+str(i)].grid(row = i, column = 4)
Label(root, text="第%d一个结点编号:" % (i + 1)).grid(row=i, column = 5)
locals()['m' + str(i)] = Entry(root)
locals()['m' + str(i)].grid(row = i, column = 6)
Label(root, text="第%d二个结点编号:" % (i + 1)).grid(row=i, column = 7)
locals()['n' + str(i)] = Entry(root)
locals()['n' + str(i)].grid(row = i, column = 8)
mainloop() 是这样子的吗? 为何要给它起不一样的名字呢?
直接获取它的值,然后存到一个列表里面不就好了 上次论坛有个帖子,要循环添加按钮,获取文件路径
可以参考下
import tkinter as tk
from tkinter.filedialog import *
root = tk.Tk()
root.geometry('500x300')
iCount = input('請輸入文件個數:')
name_list = ['a', 'b', 'c', 'd']# 定义对象名字列表
class file_name():# 定义类,用来创建循环对象
def __init__(self, i):
self.sFilePath = tk.StringVar()
self.name = f'name{i}'
print(self.name)
def btn_com(self):
self.sFilePath.set(askopenfilename())
for i in range(1, int(iCount) + 1):
name_list = file_name(i)# 用对象名字列表内元素,创建循环对象
name_list.name = tk.Button(root, text='請選擇文件' + str(i), command=name_list.btn_com)
name_list.name.grid(row=i - 1, column=0)
tk.Entry(root, textvariable=name_list.sFilePath, width=50).grid(row=i - 1, column=1)
file_name_list = ['a', 'b', 'c', 'd']
for i in range(1, int(iCount) + 1):
name_list.name['text'] = file_name_list
mainloop()
疾风怪盗 发表于 2020-10-31 09:30
上次论坛有个帖子,要循环添加按钮,获取文件路径
可以参考下
谢谢大佬{:10_288:} qiuyouzhi 发表于 2020-10-31 08:21
为何要给它起不一样的名字呢?
直接获取它的值,然后存到一个列表里面不就好了
请问具体是如何实现的呢? qiuyouzhi 发表于 2020-10-31 08:21
为何要给它起不一样的名字呢?
直接获取它的值,然后存到一个列表里面不就好了
十分感谢大佬的思路{:10_288:}
页:
[1]