如何批量新建Button&Entry,点击button选择文件,将路径写入对应的Entry
求助: 如何批量新建Button&Entry,点击button选择文件,将路径写入对应的Entry
下面的代码可以批量创建Button&Entry,但是没办法实现点击button选择文件,将路径写入对应的Entry
import tkinter as tk
from tkinter.filedialog import *
root=tk.Tk()
root.geometry('500x300')
iCount=input('請輸入文件個數:')
sFilePath=tk.StringVar()
def btn_com():
sFilePath.set(askopenfilename())
for i in range(1,int(iCount)+1):
tk.Button(root,text='請選擇文件'+str(i),command=btn_com).grid(row=i-1,column=0)
tk.Entry(root,textvariable=sFilePath,width=50).grid(row=i-1,column=1)
mainloop() 试试这样,name_list = ['a', 'b', 'c', 'd']# 定义对象名字列表,这句话可以预设添加,以免超范围
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):
self.sFilePath = tk.StringVar()
def btn_com(self):
self.sFilePath.set(askopenfilename())
for i in range(1, int(iCount) + 1):
name_list = file_name()# 用对象名字列表内元素,创建循环对象
tk.Button(root, text='請選擇文件' + str(i), command=name_list.btn_com).grid(row=i - 1, column=0)
tk.Entry(root, textvariable=name_list.sFilePath, width=50).grid(row=i - 1, column=1)
mainloop()
疾风怪盗 发表于 2020-10-22 12:08
试试这样,name_list = ['a', 'b', 'c', 'd']# 定义对象名字列表,这句话可以预设添加,以免超范围
NB,多谢啦! 疾风怪盗 发表于 2020-10-22 12:08
试试这样,name_list = ['a', 'b', 'c', 'd']# 定义对象名字列表,这句话可以预设添加,以免超范围
批量建完后如果我要单独修改按钮上面的文字该怎么写呢? lengyue869 发表于 2020-10-22 16:34
批量建完后如果我要单独修改按钮上面的文字该怎么写呢?
{:10_284:}不知道啊。。。。。。 lengyue869 发表于 2020-10-22 16:34
批量建完后如果我要单独修改按钮上面的文字该怎么写呢?
尝试了下,这样可以,但是有些限制,就是也要添加名字列表,循环修改
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-22 17:18
尝试了下,这样可以,但是有些限制,就是也要添加名字列表,循环修改
perfect !!! 疾风怪盗 发表于 2020-10-22 17:18
尝试了下,这样可以,但是有些限制,就是也要添加名字列表,循环修改
再次請教如何實現以下功能
點擊Run按鈕將Entry中的路徑寫入到Excel B列中對應的單元格(因現在權限不夠,沒辦法上傳圖片跟excel附件.....)
import tkinter as tk
from tkinter.filedialog import *
import winreg
import xlwings as xw
root = tk.Tk()
root.geometry('850x400+300+100')
# iCount = int(input('請輸入文件個數:'))
iCount = 3
name_list = ['a', 'b', 'c', 'd','e','f','g']# 定义对象名字列表
def get_desktop():
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,
r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
return winreg.QueryValueEx(key,"Desktop")
desPath=get_desktop()
#=====================================================================
def btn_run():
app = xw.App(visible=True, add_book=False)
wb_vba=app.books.open('VBA test.xlsm')
sht_main=wb_vba.sheets['main']
for i in range(1,iCount+1):
sht_main.range(i+3,2).value='Entry中對應的文件路徑'
# vba=app.macro('VBA_Test')
# vba.run()
#=====================================================================
class file_name():# 定义类,用来创建循环对象
def __init__(self):
self.sFilePath = tk.StringVar()
def btn_com(self):
global desPath
self.sFilePath.set(askopenfilename())
# self.sFilePath.set(askopenfilename(initialdir=desPath))
for i in range(1, iCount + 1):
name_list = file_name()# 用对象名字列表内元素,创建循环对象
tk.Label(text="File"+str(i),width=10,bd=8,
font=('Arial',13)).grid(row=i-1,column=0)
tk.Button(root, text='選擇文件',bd=2,font=('Arial',10),
command=name_list.btn_com).grid(row=i - 1, column=2)
tk.Entry(root, textvariable=name_list.sFilePath,
width=70,font=('Arial',13)).grid(row=i - 1, column=1)
btnRun=tk.Button(text=' Run ',font=('Arial',11),bg='green',fg='white',
command=btn_run)
btnRun.grid(row=i,column=1)
mainloop()
lengyue869 发表于 2020-10-26 17:04
再次請教如何實現以下功能
點擊Run按鈕將Entry中的路徑寫入到Excel B列中對應的單元格(因現在權限不夠 ...
不知道额。。。。。。。。。。。 疾风怪盗 发表于 2020-10-27 12:05
不知道额。。。。。。。。。。。
已经解决咯,先将路径写到列表,再写到excel就行了
页:
[1]