我用tkinter制作了一个Python(3)GUI程序,并使用重定向函数将所有打印语句定向到GUI滚动文本框中。在
这是重定向函数(与tkinter窗口在同一类中):
def redirector(self,inputStr):
self.txt.insert(tk.INSERT, inputStr)
self.txt.update()
self.txt.see(tk.END)
当我想开始重定向输出时,我添加了这一行:
^{pr2}$但是当我将文件重命名为.pyw时,文本框中没有显示任何内容。请建议一种方法来正确地将文本定向到GUI窗口。在
print调用不起作用的原因是,在Windows上运行
.pyw
文件时,运行程序的可执行文件实际上是pythonw.exe
,它通过调用WinMain()在内部初始化应用程序,因此不会创建控制台。没有控制台意味着没有标准IO流,因此sys.stdout
是未定义的。在相反,我建议您将
tk.Text
子类,并将write()
和flush()
函数定义为实例方法。然后,您只需将sys.stdout
设置为子类实例,一切都会正常工作。在相关问题 更多 >
编程相关推荐