我遇到以下python脚本的问题。之后,它将从条形码扫描仪捕获数据并将文本显示为标签。但每当文本应从标签(突出显示的行)更改时,程序崩溃。我是一个绝对的初学者Python,无法解释。我注释掉了这条线,程序正常运作。
from Tkinter import *
import pyHook
class Application(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title("Sc4nn0r")
self.variable = "Start Variable"
self.master.geometry("363x200")
self.master.resizable(0,0)
self.master.rowconfigure( 0, weight = 1)
self.master.columnconfigure( 0, weight = 1 )
self.grid( sticky = W+E+N+S )
self.label4String = StringVar()
self.label4 = Label(self, textvariable=self.label4String)
self.label4.grid( row = 2, column = 1, columnspan = 2, sticky = W+E+N+S)
self.label4String.set("Variable1")
self.string = ''
hook = pyHook.HookManager()
hook.KeyDown = self.read
hook.HookKeyboard()
def read(self, event):
print(event.Ascii);
if event.Ascii != 13:
self.string = self.string + chr(event.Ascii)
else:
self.post(self.string.strip(' \0'))
self.string = ''
return True
def post(self,string):
self.label4String.set(string) # THIS LINE I Mean ##########
print(string)
def main():
Application().mainloop()
if __name__ == '__main__':
main()
我希望有人可以帮助我。
答案 0 :(得分:1)
我建议完全摆脱StringVar。相反,请使用self.label4 = Label(self, text = "Variable1")
。然后,只要您想更改标签,就可以使用self.label4.config(text = string)
。