Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
252 views
in Technique[技术] by (71.8m points)

How may I define a tkinter object in separate file and call it back in different python file?

The below codes work ok.

Db = ttk.Combobox(tab2, width=7)
Db['values'] = (3.75, 8.5, 8.75, 12.25)
Db.place(x=(x_diff_cons+x_diff), y=y_diff_cons)
Db.current(2)

def Get_details_func_Part_01():
    
    Inputs = {'Db': (float(Db.get())),'NOB': (float(NOB.get())),'NOC': (float(NOC.get())),
             'Dc': (float(Dc.get())),'BR': (float(BR.get())),'SR': (float(SR.get())),
             'IFA': (float(IFA.get())), 'PDC_tt': (float(PDC_tt.get())), 'PDC_wear_cons': (float(PDC_wear_cons.get())),
             'Stud_wear_cons': (float(Stud_wear_cons.get())),
             'Db_eff': (float(Db_eff.get())), 'miu': (float(miu.get())),
             'a_wear': (float(a_wear.get()))}

Get_details_func_Part_01()

However, If I rewrite Combobox part as a function and save it

def Apply():
    Db = ttk.Combobox(tab2, width=7)
    Db['values'] = (3.75, 8.5, 8.75, 12.25)
    Db.place(x=(x_diff_cons+x_diff), y=y_diff_cons)
    Db.current(2)

in a separate function (Seperate_file.py) in the same directory and call it like:

import Seperate_file
Seperate_file.Apply()

def Get_details_func_Part_01():
    
    Inputs = {'Db': (float(Db.get())),'NOB': (float(NOB.get())),'NOC': (float(NOC.get())),
             'Dc': (float(Dc.get())),'BR': (float(BR.get())),'SR': (float(SR.get())),
             'IFA': (float(IFA.get())), 'PDC_tt': (float(PDC_tt.get())), 'PDC_wear_cons': (float(PDC_wear_cons.get())),
             'Stud_wear_cons': (float(Stud_wear_cons.get())),
             'Db_eff': (float(Db_eff.get())), 'miu': (float(miu.get())),
             'a_wear': (float(a_wear.get()))}

Get_details_func_Part_01()

then I will get an error that Db is not defined!

Exception in Tkinter callback
Traceback (most recent call last):
  File "c:usersdaslab hareland 3appdatalocalprogramspythonpython36libkinter\__init__.py", line 1699, in __call__
    return self.func(*args)
  File "<ipython-input-2-5902b376b850>", line 68, in Get_details_func_Part_01
    Inputs = {'Db': (float(Db.get())),'NOB': (float(NOB.get())),'NOC': (float(NOC.get())),
NameError: name 'Db' is not defined
question from:https://stackoverflow.com/questions/65849754/how-may-i-define-a-tkinter-object-in-separate-file-and-call-it-back-in-different

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...