Как я могу создать модальное диалоговое окно с помощью messagebox.showerror - PullRequest
0 голосов
/ 04 мая 2018

Как я могу создать модальное диалоговое окно с помощью messagebox.showerror?

messagebox.showerror("Error", "No downloader.exe found")

Когда я создал окно сообщения, я обнаружил, что могу перемещать корневые окна. и мне нужно создать модальное диалоговое окно, например filedialog.askopenfilename.

filedialog.askopenfilename(initialdir = self.get_path()+ '/bin', filetypes=[("BIN Files", ".bin")])

вот коды:

import tkinter
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
import os

class Application(Frame):

    def createWidgets(self, main_frame):

        #self.llabel = Label(main_frame, text="Ready", width=20, bg="turquoise", font = ftLabel)
        #self.llabel.grid(row=0, column=0, sticky=W+E) #columnspan=2

        self.frame1 = Frame(main_frame)
        self.frame1.grid(row=0, column=0, columnspan=2, sticky=W+E+N+S)

        self.addr = StringVar()
        self.addrtext = Entry(self.frame1, width=20, textvariable = self.addr)
        self.addrtext.grid(row=0, column=0, sticky=W+E+N+S)
        self.addr.set("0x0")

        self.bfile = Button(self.frame1, text='BIN File', width=20)
        self.bfile.grid(row=0, column=1, sticky=W+E+N+S)

        messagebox.showerror("Error", "No downloader.exe found")

    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pack(fill=BOTH, expand=1)
        main_frame = Frame(master)
        main_frame.pack(fill="y", expand=1)
        self.createWidgets(main_frame)
        self.dl_thread = 0


if __name__=="__main__":

    root = Tk()

    #lock the root size
    root.resizable(False,False)

    app = Application(master=root)
    app.mainloop()

1 Ответ

0 голосов
/ 04 мая 2018

Я попробовал твой код и messagebox.showerror модально для меня.

Может быть, есть что-то еще в вашем коде (темы?) Или, может быть, это зависит от вашей среды.

Для справки, весь мой код:

from tkinter import *
from tkinter import messagebox          

root = Tk()
def do(): messagebox.showerror("Error", "No downloader.exe found")

b = Button(root, text='Dialog', command=do)
b.pack()

root.mainloop()

Если это не сработает, вы можете взглянуть на: Окно сообщений Tkinter не ведет себя как модальный диалог

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...