Python Tkinter textbox inserting issue
<pre><code>from tkinter import *
import time

class MyClass(object):
    def __init__(self):
        root = Tk()

        button = Button(root, text="Button", command=self.command).pack()

        #scrollbar and textbox
        scrollbar = Scrollbar(root)
        scrollbar.pack(side=RIGHT, fill=Y)

        self.tbox = Text(root, wrap=WORD, yscrollcommand=scrollbar.set)
        self.tbox.pack(fill=X)
        scrollbar.configure(command=self.tbox.yview)

        root.mainloop()
    def command(self):
        time.sleep(2)
        self.tbox.insert(END, "Some text1\n")

        time.sleep(2)
        self.tbox.insert(END, "Some text2\n")

        time.sleep(2)
        self.tbox.insert(END, "Some text3")
MyClass()
</code></pre>

<p>Is it possible to appear those texts one by one and not all at the same time? I put <code>time.sleep()</code> to prove that its not appearing those separately</p>

<p>EDIT: Here is my code. So the problem is that if I use <code>self.tbox.insert(END, "text")</code> instead of <code>print("text")</code>, that text is not appearing the same way, if I use print, it will appear (prints) instantly of course. I made a website crawler or something like that, so it is very frustrating to wait when the text appears in textbox. And yes, I dont want to use print in this case</p>

<pre><code>from selenium.common.exceptions import NoSuchElementException
from selenium import webdriver
from tkinter import *

phantom_path = r'phantomjs.exe'
driver = webdriver.PhantomJS(phantom_path)

class Crawler(object):
    def __init__(self):

        self.root = Tk()
        self.root.title('Website Crawler')
        label1 = Label(self.root, text='Select a website').pack()

        self.website = StringVar()
        Entry(self.root, textvariable=self.website).pack()

        #button which executes the function
        button = Button(self.root, text='Crawl', command=self.command)
        button.pack()

        #scrollbar and textbox
        self.scrollbar = Scrollbar(self.root)
        self.scrollbar.pack(side=RIGHT, fill=Y)

        self.tbox = Text(self.root, wrap=WORD, yscrollcommand=self.scrollbar.set)
        self.tbox.pack(fill=X)
        self.scrollbar.configure(command=self.tbox.yview)

        self.root.mainloop()

    def command(self):

        url = self.website.get()
        link_list = []
        link_list2 = []

        driver.get(url)

        driver.implicitly_wait(5)

        self.tbox.insert(END, "Crawling links..\n")

        #finds all links on the site and appens them to list
        try:
            links = driver.find_elements_by_tag_name('a')
            for x in links:
                x = x.get_attribute('href')
                link_list.append(x)
                self.tbox.insert(END, str(x)+'\n')

        except NoSuchElementException:
            self.tbox.insert(END, 'This site have no links\n')
            pass
        try:
            for sites in link_list:
                driver.get(sites)
                self.tbox.insert(END, "### In "+str(sites)+': ###\n')
                links = driver.find_elements_by_tag_name('a')
                for y in links:
                    y = y.get_attribute('href')
                    link_list.append(y)
                    self.tbox.insert(END, str(y)+'\n')
        except NoSuchElementException:
            self.tbox.insert(END, 'This site have no links\n')
            pass
        self.tbox.insert(END, 'Done\n\n')

Crawler()
</code></pre>

<p>If you want to show texts one by one using <code>time.sleep()</code> you will need to use <code>Threading</code> module.</p>

<pre><code>from tkinter import *
import time
import threading

class Threader(threading.Thread):

    def __init__(self, tbox, *args, **kwargs):

        threading.Thread.__init__(self, *args, **kwargs)
        self.tbox = tbox
        self.daemon = True # Stop threads when your program exits.
        self.start()

    def run(self):
        time.sleep(2)
        self.tbox.insert(END, "Some text1\n")

        time.sleep(2)
        self.tbox.insert(END, "Some text2\n")

        time.sleep(2)
        self.tbox.insert(END, "Some text3")

            break

class MyClass(object):
        def __init__(self):
            self.root = Tk()

            button = Button(self.root, text="Button", command= lambda: Threader(tbox=self.tbox)).pack()

            #scrollbar and textbox
            scrollbar = Scrollbar(self.root)
            scrollbar.pack(side=RIGHT, fill=Y)

            self.tbox = Text(self.root, wrap=WORD, yscrollcommand=scrollbar.set)
            self.tbox.pack(fill=X)
            scrollbar.configure(command=self.tbox.yview)

            self.root.mainloop()
MyClass()
</code></pre>

python tkinter textbox python-3.5