CustomTkinter TabView 返回最终值

问题描述 投票:0回答:1

使用https://github.com/TomSchimansky/CustomTkinter/wiki/CTkTabview#cgetattribute_name推荐的类,我添加了一个整体的OK按钮,当所有选项卡上的所有小部件都已填充时,可以单击该按钮。

在下面只有一个小部件的示例中,MyTabView中的第一个打印响应是

Something
的初始值,但我想知道对所有小部件进行所有更改后的最终响应。

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")

        self.Entry = ctk.CTkEntry(master=self.tab('tab 1'), textvariable=ctk.StringVar(value='Something'))
        self.Entry.grid(row=0, column=0, padx=20, pady=10)

        global response
        response = self.Entry.get()
        print(response)

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=lambda: self.fn_okay())
        self.OKButton.grid(row=3, column=1, columnspan=1, padx=20, pady=20, sticky='ew')

    def fn_okay(self):
        response = MyTabView.Entry.get() # Gives a no attribute error
        print(response)

app = App()
app.mainloop()

单击 OK 按钮时,如何获取 App 类中的所有最终值?我的

response = MyTabView.Entry.get()
尝试导致无属性错误,但这里需要一些东西,否则打印的响应将保持不变。

另一种尝试是观察变量[并调用函数来记录最新值],与Tkinter:如何检查特定帧的任何小部件是否已更改?但这似乎不适用于 ctk .

python tkinter tabview customtkinter
1个回答
0
投票

@Tranbi 在评论中发布了一个直接的答案 - 使用实例化的 Entry:self.tab_view.Entry.get()

© www.soinside.com 2019 - 2024. All rights reserved.