Неблокирующее всплывающее сообщение tkinter

Я создаю управляющее приложение, которое блокирует использование компьютера пользователем до тех пор, пока оператор не разблокирует его.

Во время блокировки оператор может отправлять сообщения на компьютер пользователя, и эти сообщения показываются пользователю посредством всплывающих сообщений.

Проблемный случай:

Если оператор отправляет два или более сообщений, отображается только первое сообщение, потому что я использую tkMessageBox.showinfo() и он блокируется, пока пользователь не нажмет кнопку ОК.

Теперь вы, вероятно, спрашиваете, почему я не создаю свой собственный класс окна сообщений и не показываю его несколько раз без блокировки? На самом деле я не могу сделать это, потому что приложение имеет focus forcing,

Это конструктор приложения и focus forcing метод:

def __init__(self):

    self.root_window = Tkinter.Tk()
    self.main_frame = Tkinter.Frame(self.root_window)        

    self.root_window.update_idletasks()
    height = self.root_window.winfo_screenheight()
    width = self.root_window.winfo_screenwidth()
    x = self.root_window.winfo_screenwidth() / 2 - width / 2
    y = self.root_window.winfo_screenheight() / 2 - height / 2
    self.root_window.geometry('{}x{}+{}+{}'.format(width, height, x, y))

    # focus forcing 
    self.root_window.bind("<FocusOut>", self.app_lost_focus)


def app_lost_focus(self, event):
    self.root_window.focus_set()
    self.root_window.after(1, lambda: self.root_window.focus_force())

Теперь, если вы знаете какую-либо другую альтернативу всплывающему сообщению, которая не имеет блокировки и может появляться несколько раз [и увидела хотя focus forcing] Я буду рад услышать об этом.

0 ответов

Другие вопросы по тегам