首页 > 解决方案 > 从 Tkinter 函数读取值

问题描述

这是我之前发布的上一个问题的后续。我面临的问题是,我的弹出菜单能够让我选择我想要的值,但是我无法读取并使用该值进行 2 个类之外的后续处理 - App 和 TestFrame。由于我对 Tkinter 函数相对较新,因此我将非常感谢任何形式的帮助/建议,以了解如何在 Class 函数之外读取和使用这些值进行进一步处理。

谢谢!

import tkinter as tk
from tkinter import ttk


class App(tk.Tk):
    def __init__(self):
        super().__init__()
        self.geometry("800x400")
        self.title('ABC')
        for r in range(5):
            self.rowconfigure(r, weight=1)
        for c in range(8):
            self.columnconfigure(c, weight=1)
        self.testFrame1 = TestFrame()
        self.testFrame1.grid(row=0, column=0, rowspan=3, columnspan=3, sticky='nsew')

class TestFrame(tk.Frame):
    def __init__(self):
        super().__init__()
        self.dimension = ('106','108','110','112','114','126','128','130','132','134','136','138','140','146','148','150','152','154','360','380','400','420','440','500', '520', '540',
                        '560', '580', '600','780','800','820')
        self.option_var =tk.IntVar()
        paddings = {'padx': 5, 'pady': 5}
        label = ttk.Label(self,  text='Select the dimension for DOB:').grid(column=0, row=0, sticky=tk.W, **paddings)
        #DOB
        option_menu = ttk.OptionMenu(
            self,
            self.option_var,
            self.dimension[0],
            *self.dimension,
            command=self.option_changed)
        option_menu.grid(column=1, row=0, sticky=tk.W, **paddings)
        self.output_label = ttk.Label(self, foreground='red')
        self.output_label.grid(column=0, row=1, sticky=tk.W, **paddings)
     def option_changed(self, *args):
        self.output_label['text'] = f'You selected: {self.option_var.get()}'
App().mainloop()
        

标签: pythontkinter

解决方案


推荐阅读