вставить текст в прокручиваемое текстовое поле вне класса - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь вставить текст в текстовое поле из функции вне класса, потому что я использую многопоточность.

код:

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 является дескриптором внутри самого класса

...