簡體   English   中英

tkinter 中的消息框問題

[英]Problems with messagebox in tkinter

我正在嘗試在 python tkinter 中創建一個混亂的文字游戲,但我很難嘗試創建一個用戶可以看到游戲規則等的前窗口。我嘗試創建一個框架,以便我可以在里面顯示規則的信息,但在消息框運行代碼時不斷彈出。 有沒有辦法解決這個問題或創建一個顯示規則的第一個窗口,然后將您重定向到游戲? 如果我的代碼中的某些單詞是法語,我也深表歉意。 謝謝你。

from tkinter import *
import random
from tkinter import messagebox

#Creation de la fenetre
fenetre = Tk()

rep =["python",'virus','while','for','if','label','import','tkinter','random','fenetre','uct','clavier','hertz','print','global']
mots=["ohtnpy",'visur','lehiw','rfo','fi','eblal','ripotm','kntiert','draomn','nefetre','tcu','vrilcea','heztr','tnrip','oabgll']

lettre =random.randrange(0,len(mots),1)
#La variable du score
a=0
#Le nombre de fois joué
j=0
#Variable qui calcule le score
s = ""

#L'affichage du score
lbl_score= Label(fenetre)

def mélanger():
  global mots, rep, lettre
  lettres =random.randrange(0,len(mots),1)
  label.config(text = mots[lettres])
  E1.delete(0, END)

def default():
  global mots,rep,lettre
  label.config(text = mots[lettre])

def vérif_rep():
  global mots, rep,lettre, a, j, s, lbl_score
  j=int(j)+1
  trouve = E1.get() #obtenir la reponse
  if trouve == rep[lettre]: #Trouve si la réponse est juste ou non
      messagebox.showinfo("Bravo", "C'est la bonne reponse!!")
      a = int(a)+1
  else:
      messagebox.showerror("Oops", "C'est pas la bonne réponse.")
  s = 'Score :' + str(a) + '/' + str(j)
  lbl_score.forget()
  lbl_score = Label(fenetre, font=("Verdana", 20), text=s, bg="#800080", fg="#fff", )
  lbl_score.pack(side=LEFT)
  mélanger()

#Affichage de la fenètre
fenetre.geometry("800x500")
fenetre.title("Jeu de mots-melés")
fenetre.configure(background="light pink")

#Création du titre
Label(fenetre,text="Jeu de mots-melés",font = ("Verdana",28),bg = "#000000", fg = "#fff").pack(pady = 5)
label = Label(fenetre,font = ("Verdana",22),bg = "#000000", fg = "#fff")
label.pack(pady = 30,ipady=10,ipadx=10)


obt_rep = StringVar()

#Boite d'entrée
E1 = Entry(fenetre,font = ("Verdana",20),textvariable = obt_rep,)
E1.pack(ipady=5,ipadx=5)

#Les boutons du code
Button(fenetre,text = "Vérifier",font = ("Comic sans ms",20),width = 10,bg="#333945",fg="#45CE30",relief = GROOVE,command = vérif_rep(),).pack(pady = 40)
Button(fenetre,text = "Mélanger",font = ("Comic sans ms",20),width = 10,bg="#777E8B",fg="#E1DA00",relief = GROOVE,command = mélanger()).pack()


C3 = Frame(fenetre, relief='groove', bd=10)
C3.place(x=700, y=300, width=500, height=500)



default()

fenetre.mainloop()

這是一個如何從頭開始創建兩個窗口或創建一個帶有按鈕的窗口的示例。 您可以嘗試更適合您的游戲和規則的方法。

from tkinter import *

def openNewWindow():
    newWindow = Toplevel(root)
    newWindow.title("New Window")
    newWindow.geometry("300x300")
    newWindowLabel = Label(newWindow, text='openNewWindow', font=('Helvetica', 16, 'bold')).place(x=50,y=50)
        
def openAnotherWindow():
    otherWindow = Toplevel(root)
    otherWindow.title("New Window")
    otherWindow.geometry("300x300")
    anotherWindowLabel = Label(otherWindow, text='openanotherWindow', font=('Helvetica', 16, 'bold')).place(x=50,y=50)

root = Tk()
root.title("Example tkinter windows")
root.geometry("300x350")
openNewWindow()

btn1 = Button(root,text="openNewWindow",command=openNewWindow)
btn1.place(x=100,y=100)

btn2 = Button(root,text="anotherWindow",command=openAnotherWindow)
btn2.place(x=100,y=200)

root.mainloop()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM