You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CustomTkinter的CTkFrame类中传值并显示于CTkEntry?

解决CTkFrame内CTkEntry显示值及NameError问题

错误原因

NameError: name 'word' is not defined是因为你直接使用了word变量,但该变量既未定义,也没有传递到自定义的CTkFrame类中。要实现向类传值并显示在CTkEntry里,只需在类的初始化方法中接收参数,再将参数赋值给输入框即可。

修正代码示例

import customtkinter as ctk

# 自定义CTkFrame类,接收word参数
class MyFrame(ctk.CTkFrame):
    def __init__(self, master, word, **kwargs):
        super().__init__(master, **kwargs)
        
        # 创建CTkEntry组件
        self.entry = ctk.CTkEntry(self)
        self.entry.pack(padx=20, pady=20)
        
        # 将传入的word插入到输入框初始位置
        self.entry.insert(0, word)

# 主程序入口
if __name__ == "__main__":
    app = ctk.CTk()
    app.title("CTkEntry Demo")
    
    # 实例化自定义Frame时,传入要显示的'yay'
    my_frame = MyFrame(app, word='yay')
    my_frame.pack(fill="both", expand=True, padx=10, pady=10)
    
    app.mainloop()

关键要点

  • 在自定义Frame的__init__方法中添加word参数,实例化类时就能将需要显示的值传递进去
  • 使用self.entry.insert(0, word)将传入的值插入到CTkEntry的起始位置,实现初始内容显示
  • 实例化MyFrame时必须明确传入word参数,比如MyFrame(app, word='yay')

内容的提问来源于stack exchange,提问作者Quinten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:02:55