如何在CustomTkinter GUI中显示终端输出?
实现CustomTkinter GUI内显示输出
要把原本输出到终端的内容直接展示在GUI界面中,只需添加一个文本显示组件,并在按钮点击时更新该组件的内容即可,以下是两种常用实现方式:
方式一:用CTkLabel显示单行文本
适合展示简短的单行内容,修改后的完整代码如下:
import customtkinter import tkinter customtkinter.set_appearance_mode("system") def disp_string(): # 更新标签的文本内容 output_label.configure(text="hello world") app = customtkinter.CTk() app.title("my app") app.geometry("700x700") # 创建用于显示输出的标签,初始文本为空 output_label = customtkinter.CTkLabel(master=app, text="") output_label.place(relx=0.5, rely=0.6, anchor=tkinter.CENTER) button = customtkinter.CTkButton(master=app, text="Start", command=disp_string) button.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER) app.mainloop()
方式二:用CTkTextbox显示多行/滚动文本
如果需要保留历史输出或显示多行内容,使用CTkTextbox更合适:
import customtkinter import tkinter customtkinter.set_appearance_mode("system") def disp_string(): # 在文本框末尾追加内容,换行便于区分多次输出 output_textbox.insert(tkinter.END, "hello world\n") app = customtkinter.CTk() app.title("my app") app.geometry("700x700") # 创建可滚动的文本框,设置宽高 output_textbox = customtkinter.CTkTextbox(master=app, width=300, height=100) output_textbox.place(relx=0.5, rely=0.6, anchor=tkinter.CENTER) button = customtkinter.CTkButton(master=app, text="Start", command=disp_string) button.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER) app.mainloop()
核心改动说明
- 添加了文本显示组件(
CTkLabel或CTkTextbox),并通过place方法布局在按钮下方 - 修改
disp_string函数,不再用print输出到终端,而是调用组件的更新方法(configure或insert)将内容展示在GUI中
内容的提问来源于stack exchange,提问作者Priyanshu Kadave
相关产品推荐
相关产品推荐

