【问题标题】:Calling another GUI from a file in python从python中的文件调用另一个GUI
【发布时间】:2017-03-23 08:59:18
【问题描述】:

假设我有一个带有如下简单代码的 GUI 它上面有一个按钮,当单击它时,我希望弹出另一个 GUI,然后从中调用该函数。问题是当我运行第一个文件时,另一个文件的 GUI 会自动弹出。我该怎么办。

first文件的代码如下

from tkinter import *
import another

root = Tk()

button1 = Button(root, text = "Call" , command = another.abc)
button1.pack()

root.mainloop()

第二个文件another.py的代码如下

from tkinter import *

root_Test2 = Tk()
root_Test2.geometry('450x450')

def abc():
     print("that's working")


root_Test2.mainloop()

请建议在单击第一个按钮时帮助我打开第二个窗口的解决方案

【问题讨论】:

  • 要将一个 .py 文件导入到另一个文件中,您需要将其正确地构造为 module,以便在导入时代码不会运行。
  • 你能建议修改吗,我必须在第二个文件中进行,这样第二个文件的 mainloop() 就不会被调用
  • 如果您已阅读我链接到的那篇教程文章,您应该能够自己弄清楚。不仅mainloop 不应该运行,root_Test2 = Tk()root_Test2.geometry('450x450') 也不应该运行。只能执行 Tkinter 导入和 abc 函数定义。其他内容必须if __name__ == "__main__": 块内进行保护。
  • 所以尝试一下,如果您仍然无法弄清楚,请编辑问题中的代码以显示您最近的尝试。

标签: python user-interface tkinter python-import


【解决方案1】:

根据@PM 2Ring,您可以将第二个文件的代码更改为:

from tkinter import *
if __name__ == '__main__':
    root_Test2 = Tk()
    root_Test2.geometry('450x450')

def abc():
     print("that's working")

if __name__ == '__main__':
    root_Test2.mainloop()

你可以找到更多关于if __name__ == '__main__'here的信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 2014-05-21
    • 2020-03-29
    • 1970-01-01
    • 2021-08-30
    相关资源
    最近更新 更多