Tkinter如何跟踪另一个fi中定义的变量

2024-09-21 03:24:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,用多个python文件构建工具,我想跟踪另一个文件中声明的变量,导入类时我可以看到它的变量和方法,但不能访问它们 正如我提到的,我有三份档案,非常感谢你的帮助 我创建的文件 浏览器 工具列 映射

在映射中,我试图跟踪在浏览器和工具列中定义的变量,下面是我的代码

工具列

from tkinter import *
import tkinter as tk


#
# ---------Create Tool Required Columns---------#
class ToolCols:

    def tool_cols(self):
        global vart
        self.vart = StringVar()
        self.vart.set("Tool Columns ")  # default value
        # self.vart.trace("w", Mapping.mapping)
        w = OptionMenu(Tk(useTk=0).master, self.vart, "Controller", "Compound",
                       "Strategy", "Block", "FBM", "Contained Name", "Parent Name")
        w.config(width=18)
        w.grid(column=0, row=5, sticky='W')
        return self.vart

浏览器

import tkinter as tk
from tkinter import *
from tkinter import filedialog
import pandas as pd
import os


#
# ---------Excel File Browsing---------#
class Browse:

    #
    # -------Get excel columns-------#
    def exl_cols(self, x):
        self.x = tk.StringVar()
        y = tuple(x)
        global varx
        self.varx = tk.StringVar()
        self.varx.set('Excel Columns')
        # self.varx.trace("w", Mapping.mapping)
        self.cols_menu = OptionMenu(Tk(useTk=0).master, self.varx, *y)
        self.cols_menu.grid(column=1, row=5, sticky='NEW')
        return self.varx

映射

from Browser import *
from ToolColumns import *
import tkinter as tk


#
# -------Create mapping-------#

class Mapping:

    def get_map(self):
        Browse.varx.trace("w", self.mapping)
        ToolCols.vart.trace("w", self.mapping)
        print(Browse.varx.get())
        print(ToolCols.vart.get())
        self.mapping(self)

    def mapping(self):
        print('hi')
        global Controller
        global Compound
        tool_sel = self.b.vart.get()
        exl_sel = ToolCols.varx.get()
        if tool_sel == "Controller":
            self.Controller = exl_sel
            return self.Controller
        elif tool_sel == "Compound":
            self.Compound = exl_sel
            return self.Compound

    def mapdisplay(self, *args):
        self.label4 = tk.Label(text=ToolCols.vart.get() + "<>" + Browse.varx.get(),
                               bg="White", width=83, height=5)
        self.label4.grid(column=0, row=11, sticky='W', columnspan=2)

Tags: 工具fromimportselfgettkinterdefmapping

热门问题