作为我登录GUI的一部分,一旦输入正确的详细信息,用户就会进入主屏幕页面。
def login():
content = nameentry.get()
content1 = IDentry.get()
if content == "1" and content1 == "1":
root.destroy(), execfile("Homescreenscroll - Copy3.1.py")
但是,当Homescreenscroll - Copy3.1.py打开并运行时,它会显示
线程Thread-1中的异常: 回溯(最近一次调用最后一次):
文件“C:\ Users \ Isaac \ Desktop \ Py \ lib \ threading.py”,第530行,在__bootstrap_inner
self.run()
文件“C:\ Users \ Isaac \ Desktop \ Py \ lib \ threading.py”,第483行, 在运行中
self .__ target(* self .__ args,** self .__ kwargs)
文件“Homescreenscroll - Copy3.1.py”,第5862行,在技巧
中WTI['text'] = row[0]
NameError:未定义全局名称“WTI”
即使它在'Homescreenscroll - Copy3.1.py'文件中明确定义
它是'Homescreenscroll - Copy3.1.py'文件中此线程的一部分:
WTI = Label(text = "")
def trick(threadName, sleepTime):
while 1 < 2:
db=MySQLdb.connect(host = "xxx",
user = "xxx",
passwd = "xxx",
db = "test")
cursor = db.cursor()
cursor.execute("""xxxx""", (xxxxx))
cursor.execute("""xxxx""", (xxxx))
db.commit()
row=cursor.fetchone()
WTI['text'] = row[0]
try:
t = threading.Thread(target=trick, args=("Trick running", 5))
t.daemon = True
t.start()
except: Exception,
print "start up"
答案 0 :(得分:0)
定义WTI。
在定义中放入一些文本,而不是什么。
答案 1 :(得分:0)
我只需要导入模块。这似乎已经为我做了。
所以,从登录GUI我已经把:
def login():
content = nameentry.get()
content1 = IDentry.get()
if content == "1" and content1 == "1":
root.destroy()
from HomescreenscrollCopy31 import FullScreenApp
现在唯一的问题是在该模块中是名为'Trick'的线程,当通过登录方式调用时,该线程没有运行。它仅在我运行实际的HomescreenscrollCopy31.py版本时才有效!
HomescreenscrollCopy31.py看起来像这样:
class FullScreenApp(object):
def __init__(self, master, **kwargs):
self.master=master
pad=3
self._geom='200x200+0+0'
master.geometry("{0}x{1}+0+0".format(
master.winfo_screenwidth()-pad, master.winfo_screenheight()-pad))
master.bind('<Escape>',self.toggle_geom)
def toggle_geom(self,event):
geom=self.master.winfo_geometry()
print(geom,self._geom)
self.master.geometry(self._geom)
self._geom=geom
def trick(threadName, sleepTime):
while 1 < 2:
....
try:
t = threading.Thread(target=trick, args=("Trick running", 5))
t.daemon = True
t.start()
except: Exception,
print "start up"
当通过登录屏幕打开时,shell只会打印“启动”,而不会打印“Trick running”
为什么会这样?