Comment puis-je créer une fenêtre pop-up dans tkinter?

J'ai un problème de création d'une fenêtre popup pour un programme.

Code:

from tkinter import *
from tkinter import ttk
import tkinter as tk

def popupBonus():
    popupBonusWindow = tk.Tk()
    popupBonusWindow.wm_title("Window")
    labelBonus = Label(popupBonusWindow, text="Input")
    labelBonus.grid(row=0, column=0)
    B1 = ttk.Button(popupBonusWindow, text="Okay", command=popupBonusWindow.destroy())
    B1.pack()

class Application(ttk.Frame):
    def __init__(self, master):
        ttk.Frame.__init__(self, master)
        mainwindow = ttk.Frame(self)

        self.buttonBonus = ttk.Button(self, text="Bonuses", command=popupBonus)
        self.buttonBonus.pack()

Le code génère une fenêtre avec un bouton et lorsque vous appuyez sur le bouton, il est censé générer une fenêtre pop-up avec le titre "Fenêtre" texte "Entrée", et disposent d'un bouton disant "Ok" pour quitter la fenêtre et revenir à la fenêtre principale. Cependant, j'obtiens cette erreur.

 Traceback (most recent call last):
  File "D:\Softwares\Python 3.6.0\lib\tkinter\__init__.py", line 1699, in __call__
return self.func(*args)
  File "C:\Users\J---- M--\Desktop\Python\GUI-Messagebox 5.py", line 12, in popupBonus
B1 = ttk.Button(popupBonusWindow, text="Okay", command=popupBonusWindow.destroy())
  File "D:\Softwares\Python 3.6.0\lib\tkinter\ttk.py", line 614, in __init__
Widget.__init__(self, master, "ttk::button", kw)
  File "D:\Softwares\Python 3.6.0\lib\tkinter\ttk.py", line 559, in __init__
tkinter.Widget.__init__(self, master, widgetname, kw=kw)
  File "D:\Softwares\Python 3.6.0\lib\tkinter\__init__.py", line 2293, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: NULL main window

Je n'ai aucune idée de ce qu'est le problème. J'ai essayer de trouver des réponses pour 4 heures et fondamentalement abandonné.

Aussi, je ne veux pas utiliser tkinter, la fonction messagebox parce que je ne veux pas le point d'exclamation image et je veux inclure plusieurs checkboxs à l'intérieur de la fenêtre pop-up plus tard.

  • a) de ne pas créer plus d'une instance de Tk, et b) voir effbot.org/tkinterbook/tkinter-dialog-windows.htm
  • command= attend le nom de la fonction (rappel) - sans (). Maintenant vous exécutez popupBonusWindow.destroy() et son résultat - probablement None - assigner à command=
InformationsquelleAutor Jason M | 2017-01-30