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

如何在CustomTkinter的App类中获取TabView组件的最终输入值?

问题解决:CTkTabview组件值获取与实时监听

核心错误修正

原代码中App.fn_okay方法直接调用MyTabView.Entry.get()是错误的——你需要访问MyTabView的实例属性而非类属性。self.tab_view是你创建的MyTabView实例,应该通过它来获取输入框的最新值。

同时,MyTabView初始化时的response = self.Entry.get()只会捕获初始值,无法同步后续输入的变化,必须在点击OK时实时读取。

修改后的完整代码

import customtkinter as ctk

class MyTabView(ctk.CTkTabview):
    def __init__(self, master, **kwargs):
        super().__init__(master, **kwargs)

        self.add("tab 1")
        self.add("tab 2")

        # 初始化StringVar并绑定到输入框,方便后续监听或取值
        self.entry_var = ctk.StringVar(value='Something')
        self.entry = ctk.CTkEntry(master=self.tab('tab 1'), textvariable=self.entry_var)
        self.entry.grid(row=0, column=0, padx=20, pady=10)

        # 初始化时打印初始值(可选)
        print("初始值:", self.entry_var.get())

class App(ctk.CTk):
    def __init__(self):
        super().__init__()

        self.tab_view = MyTabView(master=self)
        self.tab_view.grid(row=0, column=0, padx=20, pady=20)

        self.OKButton = ctk.CTkButton(self, text='OK', command=self.fn_okay)
        self.OKButton.grid(row=3, column=1, columnspan=1, padx=20, pady=20, sticky='ew')

        # 可选:添加实时监听输入框内容变化的逻辑
        self.tab_view.entry_var.trace_add("write", self.on_entry_change)

    def fn_okay(self):
        # 通过实例获取输入框的最新值
        response = self.tab_view.entry.get()
        # 或者直接从StringVar获取,结果一致
        # response = self.tab_view.entry_var.get()
        print("提交的值:", response)

    def on_entry_change(self, *args):
        # 实时监听输入变化的回调函数
        current_value = self.tab_view.entry_var.get()
        print("实时变化值:", current_value)

app = App()
app.mainloop()

关键修改点说明

  • 将输入框实例命名为self.entry(遵循小写开头的Python命名规范),并通过self.tab_view.entry访问实例属性。
  • 显式创建self.entry_var绑定到输入框,既可以通过entry_var.get()取值,也能通过trace_add实现实时监听。
  • App.fn_okay中直接调用实例的entry.get()或entry_var.get()获取最新值,避免类属性访问错误。
  • 若需要实时监听输入变化,使用StringVar.trace_add("write", 回调函数)即可,CustomTkinter完全兼容Tkinter的变量监听机制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:30:07