如何在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
相关产品推荐
相关产品推荐

