收集值后重置字符串数据
String data reset after gathering value
我正在尝试使用用户输入的名称保存屏幕截图文件,但是当它到达屏幕截图保存命令时,它被重置为程序初始化时设置的第一个值。
我已经设置了一些打印函数来调试程序,但是我只发现它正在重置变量,但不确定为什么,我做了一个有效的安排,但我确信这不是最好的方法做吧。
import pyautogui
import time
from tkinter import *
Serial = "String"
im1 = pyautogui.screenshot
window = Tk()
window.title("Escanea número de serie")
window.geometry('300x40')
lbl = Label(window, text="Motor:",font=("Arial Bold", 20))
lbl.grid(column=0, row=0)
TextBox1 = Entry(window,width=12)
TextBox1.grid(column=1, row=0)
def clicked():
Serial = str(TextBox1.get())
print (Serial) #Until value is the one set by the user
window.destroy()
time.sleep(2)
#im2 = pyautogui.screenshot(Serial + ".png") | Here it works
#Agregar que hace click
btn = Button(window, text="Guardar",bg="orange", fg="black",command=clicked)
btn.grid(column=2, row=0)
window.mainloop()
print (Serial) #Here it gets reset to "String" value
im2 = pyautogui.screenshot(Serial + ".png") #Here won't work
有必要为未来的项目保留价值。
任何帮助将不胜感激,谢谢。
程序要求用户提供数据:
如果用户按下按钮,它应该开始保存带有引入值的屏幕截图文件,但是它会使用 "String" 名称保存它。
结果:
要解决您的问题,您需要在函数 clicked
中添加一行以使用全局变量 Serial
而不是在该函数中创建局部变量 Serial
。
def clicked():
global Serial
Serial = str(TextBox1.get())
print (Serial) #Until value is the one set by the user
window.destroy()
time.sleep(2)
我正在尝试使用用户输入的名称保存屏幕截图文件,但是当它到达屏幕截图保存命令时,它被重置为程序初始化时设置的第一个值。
我已经设置了一些打印函数来调试程序,但是我只发现它正在重置变量,但不确定为什么,我做了一个有效的安排,但我确信这不是最好的方法做吧。
import pyautogui
import time
from tkinter import *
Serial = "String"
im1 = pyautogui.screenshot
window = Tk()
window.title("Escanea número de serie")
window.geometry('300x40')
lbl = Label(window, text="Motor:",font=("Arial Bold", 20))
lbl.grid(column=0, row=0)
TextBox1 = Entry(window,width=12)
TextBox1.grid(column=1, row=0)
def clicked():
Serial = str(TextBox1.get())
print (Serial) #Until value is the one set by the user
window.destroy()
time.sleep(2)
#im2 = pyautogui.screenshot(Serial + ".png") | Here it works
#Agregar que hace click
btn = Button(window, text="Guardar",bg="orange", fg="black",command=clicked)
btn.grid(column=2, row=0)
window.mainloop()
print (Serial) #Here it gets reset to "String" value
im2 = pyautogui.screenshot(Serial + ".png") #Here won't work
有必要为未来的项目保留价值。 任何帮助将不胜感激,谢谢。
程序要求用户提供数据:
如果用户按下按钮,它应该开始保存带有引入值的屏幕截图文件,但是它会使用 "String" 名称保存它。
结果:
要解决您的问题,您需要在函数 clicked
中添加一行以使用全局变量 Serial
而不是在该函数中创建局部变量 Serial
。
def clicked():
global Serial
Serial = str(TextBox1.get())
print (Serial) #Until value is the one set by the user
window.destroy()
time.sleep(2)