Я борюсь с проблемой ткинтера.
Те из вас, кто уже использовал tkinter, знают, что метод mainl oop блокирует выполнение кода после его вызова, и мне все еще нужно обновить GUI после вызова mainl oop.
Лучшее решение - использовать threading.Thread
, но я не могу его реализовать. На самом деле я хочу вызвать появление кнопок, когда nb_file равен 1
try:
# Python 3
import tkinter as tk
except ImportError:
# Python 2
import Tkinter as tk
import threading
class App():
def __init__(self):
self.root = tk.Tk()
self.main_app = Window(self.root)
class Window(tk.Frame, threading.Thread):
def __init__(self, master):
self.master = master
tk.Frame.__init__(self, self.master)
threading.Thread.__init__(self)
self.start()
self.configure_gui()
def configure_gui(self):
self.master.title("Test")
self.master.bind('<<foo>>', self.create_buttons)
def create_buttons(self, event=None):
from tkinter.font import BOLD
self.btn = tk.Button(
self.master,
text="Button",
command=self.say_hello,
height=7)
self.btn.grid(
row=2,
column=0,
columnspan=2,
padx=10,
pady=10,
sticky="nesw")
def say_hello(self):
print("Hello, Tkinter!")
if __name__ == '__main__':
app = App()
app.root.mainloop()
try:
while True:
time.sleep(1)
nb_file = isfile()
#print(nb_file)
if nb_file > 0:
if nb_file == 1:
app.root.event_generate('<<foo>>', when="now")
#app.main_app.create_buttons()
elif nb_file > 1:
print("error")
except KeyboardInterrupt:
# quit
sys.exit()