Python Tkinter。从def在文本框中插入文本?
Python Tkinter。从def在文本框中插入文本?,python,user-interface,tkinter,ttk,Python,User Interface,Tkinter,Ttk,我制作了一个脚本,需要解析3D打印机日志文件并将其导出到.xlsx。 我完成了,但是现在我需要为脚本制作GUI,除了一件事之外,我几乎完成了所有的事情。我有这样的功能 def run(templatefilename): #LIST OF PRINTER LOG FILES listOfLogFiles = glob.glob(r"newPrintLogs\*.txt") for logfile in listOfLogFiles: #PARSING PRINTER LOG FIL
我制作了一个脚本,需要解析3D打印机日志文件并将其导出到.xlsx。
我完成了,但是现在我需要为脚本制作GUI,除了一件事之外,我几乎完成了所有的事情。我有这样的功能
def run(templatefilename):
#LIST OF PRINTER LOG FILES
listOfLogFiles = glob.glob(r"newPrintLogs\*.txt")
for logfile in listOfLogFiles:
#PARSING PRINTER LOG FILE
data = parsPrintingLog(logfile)
#WRITE EXCEL FILE
excelWrite(data, templatefilename)
# MOVE FINISHED FILES
dst = "finishedPrintLogs\\" + logfile.split('\\')[-1]
src = r"" + str(logfile)
shutil.move(src, dst)
consoleLog(src + " " + "successfully finished and moved to" + " " + dst)
# print (src, "successfully finished and moved to", dst)
从这个函数中,我需要导出“#移动完成的文件”。在我制作GUI之前,我使用打印来打印日志移动的位置,但是现在我不知道如何在GUI文本框中打印它,它不必是文本框,我只需要在GUI应用程序中显示它
也许我误解了您的问题,但从我收集的信息来看,您希望转储日志文件的内容以显示在tkinter GUI中 您可以使用ttk ScrolledText小部件 小例子“ 例如,如果您的日志文件有其他编码,您可以这样做 在
文本框中。插入日志内容可通过日志内容解码为utf-8
。解码(“utf-8”)
然后,您可以通过其他方法处理滚动、搜索scrolledtext小部件突出显示已找到的单词等,以搜索日志文件内容。例如。不太可能,我需要导出“\print(src,“成功完成并移动到”,dst)\“对于我的GUI应用程序,不是日志文件。因此为了澄清,您需要插入以下文本src成功完成并移动到dst
,其中src和dst是GUI的源目录和目标目录?”?若有,;如果是这种情况,那么为什么不定义文本框,然后定义打印行的位置dotextbox.insert(“end”,“%s成功完成并移动到%s\n”%(src,dest))
?名称错误:名称“src”未定义当您的代码中某个地方或结构中出现错误时,src
在您在问题中发布的代码块中明确定义?我在上面的注释中犯了一个小错误dest
应该是dst
,如代码块中所示
textbox = ttk.ScrolledText(parent)
log_contents = open(log_file, "r").read()
textbox.insert("end", log_contents)