Python tkinter 操作用于传递来自文本框的值
Python tkinter operation for pass the value from the Textbox
其实我已经做了一个.docx操作的脚本。该脚本将计算文件夹中的 .docx 文件总数并提供一些报告。现在我打算在上面使用 GUI 操作。在我的脚本中,我将那个文件夹放在 python 目录中,这样它就可以工作,但我在这里想要的是,用户将在 "C:/user/app/data/folder_name" 之类的文本框中输入路径,并在按下提交按钮时将显示报告。这里我附上代码
代码:
import os
import glob
from docx import Document
from tkinter import *
def print_input():
mypath = text_entry.get()
files=0
for name in os.listdir(mypath):
if name.endswith('.docx'):
files=files+1
print("Total No of Files:",files)
table=0
for name in os.listdir(mypath):
for word in glob.glob('*.docx'):
doc=Document(word)
for t in doc.tables:
for ro in t.rows:
if ro.cells[0].text=="ID" :
table=table+1
print("Total Number of Tables: ", table)
root = Tk()
Label(root, text="Enter Path").grid(row=0)
text_entry = Entry(root)
text_entry.grid(row=1, column=0)
Button(root, text='Submit', command=print_input).grid(row=3, column=0, sticky=W, pady=4)
mainloop()
这是我的新代码。但是我在该文件夹中只有一个文件,它包含 5 个表。此代码提供 2 个文件和 312 个表。我能做什么?
您可以使用 Entry
小部件的 get()
方法来获取用户拥有的内容 input.So 这样的事情应该可行:
from tkinter import *
def get_path():
#Something like this
#replace your default path with the user's path
mypath = text_entry.get()
files=0
for name in glob.glob(mypath):
files=files+1
print("Total No of Files:",files)
root = Tk()
Label(root, text="Enter Path").grid(row=0)
#Create text entry and add it to the window:
text_entry = Entry(root)
text_entry.grid(row=1, column=0)
#This button will call the get_path function when it is clicked
Button(root, text='Submit', command=get_path).grid(row=3, column=0, sticky=W, pady=4)
mainloop()
编辑:您还可以使用 Text
小部件在调用相同的 提交 按钮时显示您的结果
其实我已经做了一个.docx操作的脚本。该脚本将计算文件夹中的 .docx 文件总数并提供一些报告。现在我打算在上面使用 GUI 操作。在我的脚本中,我将那个文件夹放在 python 目录中,这样它就可以工作,但我在这里想要的是,用户将在 "C:/user/app/data/folder_name" 之类的文本框中输入路径,并在按下提交按钮时将显示报告。这里我附上代码
代码:
import os
import glob
from docx import Document
from tkinter import *
def print_input():
mypath = text_entry.get()
files=0
for name in os.listdir(mypath):
if name.endswith('.docx'):
files=files+1
print("Total No of Files:",files)
table=0
for name in os.listdir(mypath):
for word in glob.glob('*.docx'):
doc=Document(word)
for t in doc.tables:
for ro in t.rows:
if ro.cells[0].text=="ID" :
table=table+1
print("Total Number of Tables: ", table)
root = Tk()
Label(root, text="Enter Path").grid(row=0)
text_entry = Entry(root)
text_entry.grid(row=1, column=0)
Button(root, text='Submit', command=print_input).grid(row=3, column=0, sticky=W, pady=4)
mainloop()
这是我的新代码。但是我在该文件夹中只有一个文件,它包含 5 个表。此代码提供 2 个文件和 312 个表。我能做什么?
您可以使用 Entry
小部件的 get()
方法来获取用户拥有的内容 input.So 这样的事情应该可行:
from tkinter import *
def get_path():
#Something like this
#replace your default path with the user's path
mypath = text_entry.get()
files=0
for name in glob.glob(mypath):
files=files+1
print("Total No of Files:",files)
root = Tk()
Label(root, text="Enter Path").grid(row=0)
#Create text entry and add it to the window:
text_entry = Entry(root)
text_entry.grid(row=1, column=0)
#This button will call the get_path function when it is clicked
Button(root, text='Submit', command=get_path).grid(row=3, column=0, sticky=W, pady=4)
mainloop()
编辑:您还可以使用 Text
小部件在调用相同的 提交 按钮时显示您的结果