我正在一个项目中,我需要将变量itemLink从一个文件导入到另一个文件。此变量包含一些预定义的字符串,以及一些必须在GUI中输入的字符串。所有代码均可,但是我不知道如何解决此导入问题。任何帮助将不胜感激。
主程序(GUI)
from tkinter import *
import time
import sys
import subprocess
def generate():
global itemLink
itemLink = "predefined_text" + itemName.get() + "predefined_tex" + itemSize.get()
subprocess.Popen("Nastavitve.py 1", shell=True)
def GUI_start():
window = Tk()
window.title("Test")
Label(window, text="Item name").grid(row=0)
Label(window, text="Size").grid(row=1)
global itemName
global itemSize
itemName = Entry(window)
itemSize = Entry(window)
itemName.grid(row=0, column=1)
itemSize.grid(row=1, column=1)
button = Button(window, text="Generate link", fg="red",command=generate)
button.grid(row=0, column=2)
window.mainloop()
if __name__ == '__main__':
GUI_start()
第二个程序(存储必要的数据)
from UI import itemLink
keys = {
"link": itemLink,
"email": "your acount email",
"password": "password"
}
def printLink():
print(itemLink)
print("end")
if __name__ == '__main__':
printLink()
答案 0 :(得分:0)
所以我有两个文件来证明这一点。 test.py(itemLink变量所在的位置)和import_test.py,以显示导入。
这是test.py:
itemLink = 'no values'
print(itemLink)
def generate():
itemLink = "predefined_text" #+ itemName.get() + "predefined_tex" + itemSize.get()
#print(itemLink)
return itemLink
#we mutate the value of itemLink in the main program
itemLink = generate()
这里是import_test.py
from test import itemLink
#Now we just have the modified itemLink value without having to import main function to call in the UI program.
print(itemLink)
这一次我在主函数中调用了generate方法来修改itemLink的值,然后将itemLink传递到下一个文件中。
让我知道这是否是您想要的。
答案 1 :(得分:0)
我刚刚找到了一个解决方案,它可能不是最好的,因此,如果有人有任何建议,请在下面写下。现在,我必须启动“设置”,该设置在单击按钮后将在导入UI时自动打开UI,然后按预期在控制台中打印链接。最好是我希望以其他方式使用它,以便UI可以打开“设置”并在其中存储变量。
设置
from UI import itemName, itemSize
itemLink = "predefined" + itemName.get() + "predefined" + itemSize.get()
print(itemLink)
print("end")
keys = {
"link": itemLink,
"email": "your acount email",
"password": "password"
}
UI
from tkinter import *
import time
import sys
import subprocess
def generate():
#subprocess.Popen("Nastavitve.py 1", shell=True)
import Settings
time.sleep(0.1)
window = Tk()
window.title("SHOP BOT")
window.configure(background="black")
Label(window, text="Item name").grid(row=0)
Label(window, text="Size").grid(row=1)
global itemName
global itemSize
itemName = Entry(window)
itemSize = Entry(window)
itemName.grid(row=0, column=1)
itemSize.grid(row=1, column=1)
button = Button(window, text="Generate link", fg="red",command=generate)
button.grid(row=0, column=2)
window.mainloop()