不要让一个python文件运行另一个

时间:2017-06-06 13:07:51

标签: python file tkinter import

我试图让一个python文件只在用户选择该选项时运行另一个,并且每次运行另一个文件时无论发生什么。

我有两个选择:

  • 如果用户选择了选项1:代码需要运行SendMenu文件。
  • 如果用户选择了选项2:代码需要运行 RecvimagesMenu 文件 但它不能像我想的那样工作,它会在我运行代码时打开 SendMenu 文件。

代码:

import sys
from Tkinter import *
import Image, ImageTk
import SendMenu
import RecvimagesMenu

mGui = Tk()

def mhello():
    global v
    if(v.get() == 1): # if the user chose option 1
        mGui.destroy()
        SendMenu.run()
    if(v.get() == 2): # if the user chose option 2
        mGui.destroy()
        RecvimagesMenu.run()

    else: # if the user didn`t choose any option 
        print "5"

def Action():
    global v
    print (v.get())

def close(): # close the window
    exit()

def menu():
    global v
    v = IntVar()

    menubar = Menu(mGui)  # menu

    filemenu = Menu(menubar, tearoff=0)  # menu works
    filemenu.add_command(label="Close", command=close)
    menubar.add_cascade(label="File", menu=filemenu)

    mGui.geometry('450x300+500+300')
    mGui.title('Nir`s ScreenShare')

    canvas = Canvas(mGui, width=500, height=150)
    canvas.pack(pady = 10)
    pilImage = Image.open("logo5.png")
    image = ImageTk.PhotoImage(pilImage)
    imagesprite = canvas.create_image(0, 0, image=image, anchor="nw")
    Radiobutton(mGui, text="Share My Screen             ", variable=v, value=1, command = Action).pack(anchor=CENTER)
    Radiobutton(mGui, text="Watch Another`s Screen", variable=v, value=2, command = Action).pack(anchor=CENTER, pady = 7.5)

    mbutton = Button(mGui, text='Start', command=mhello).pack()  # button\

    mGui.config(menu=menubar)  # menu helper

    mGui.mainloop()

menu()

1 个答案:

答案 0 :(得分:0)

您遇到的问题是当您将python文件导入另一个文件时,它会运行所有代码。由于你没有给出那些2的代码,我可以做出有根据的猜测。您没有将这些文件中的代码放入函数

for example: 
def printme( str ):
   print("str"
print"Hello world again"

如果您在导入代码后立即进入RecvimagesMenu.py,则会打印出#34; Hello world"然后你打电话给RecvimagesMenu.printme("hello world")它会打印" Hello world"。

在您的文件中,您还有代码不在正在执行的函数中。删除此代码或将其移动到函数中并调用它们。