将相同的GUI连接到两个或多个python文件

时间:2017-09-02 06:59:17

标签: python python-3.x tkinter

我正在构建一个涉及4个python文件的小项目,这些文件具有各自的功能。但是,有一个main.py文件,通过导入它们来使用所有其他文件。

现在,我必须为这个项目构建一个GUI,我正在main.py文件中构建。我的问题是,其他一些文件在控制台上具有print的功能,当整个项目运行时,我想在GUI上将这些功能改为print。那么,如何在主文件中创建的Text字段中打印其他文件中的文本。

main.py

import second as s
from tkinter import *

def a():
    field.insert(END, "Hello this is main!")

root = Tk()
field = Text(root, width=70, height=5, bd=5, relief=FLAT)
button1 = Button(root, width=20, text='Button-1', command=a)
button2 = Button(root, width=20, text='Button-2', command=s.go)
root.mainloop()

second.py

def go():
    print("I want this to be printed on the GUI!")
#... and a bunch of other functions...

我只想在用户按下按钮-2时,然后功能go()打印field上的文字

1 个答案:

答案 0 :(得分:1)

我认为这是尝试添加field作为函数go的参数的最佳方式。

这是我的代码:

<强> main.py

import second as s
from tkinter import *

def a(field):
    field.insert(END, "Hello this is main!\n")

root = Tk()

field = Text(root, width=70, height=5, bd=5, relief=FLAT)
button1 = Button(root, width=20, text='Button-1', command=lambda : a(field))
button2 = Button(root, width=20, text='Button-2', command=lambda : s.go(field))

#to display widgets with pack
field.pack()
button1.pack()
button2.pack()

root.mainloop()

<强> second.py

from tkinter import *


def go(field):
    field.insert(END, "I want this to be printed on the GUI!\n")
    print("I want this to be printed on the GUI!")
    #something you want

运行效果的截图:)

enter image description here