Я пытаюсь вставить текст в текстовое поле из функции вне класса, потому что я использую многопоточность.
код:
import os
import glob
import threading
from Tkinter import *
import Tkinter as tk
import ScrolledText as tkst
def searchfunc(string, filetype, directory):
print 'string : '+string
print 'filetype : '+filetype
print 'directory : '+directory
os.chdir(directory)
for file in glob.glob('*'+filetype):
if string in open(file).read():
print '[-info-] textstring found in >> '+file
searchresults.insert(INSERT, file) # problem line
else:
print '[-info-] text string not found in : '+file
pass
class name:
def __init__(self, top=None):
...
def search():
string = self.stringtextbox.get()
filetype = self.filetypetextbox.get()
directory = self.directorytextbox.get()
t = threading.Thread(target=searchfunc(string, filetype, directory))
t.daemon = True
t.start()
Но это дает мне следующую ошибку:
NameError: global name 'searchresults' is not defined
и, конечно, если я использовал имя «self.searchresults», это также выдаст мне ошибку, потому что, как вы знаете, self является дескриптором внутри самого класса