def roll():
result_Dice = random.randint(1, 6)
def read_dice_lines():
file2 = open(dice_file_name + '.txt')
lines = file2.read().split(',')
file2.close()
mainMenu.destroy()
rollDice = tkinter.Tk()
rollDice.title("Roll That Dice!")
lblRollOutput = tkinter.Label(rollDice, text="")
btnRoll = tkinter.Button(rollDice, text="Roll me!", command=roll)
if diceOutPut == "1":
lblRollOutput.config(text=lines[0])
elif diceOutPut == "2":
lblRollOutput.config(text=lines[1])
elif diceOutPut == "3":
lblRollOutput.config(text=lines[2])
elif diceOutPut == "4":
lblRollOutput.config(text=lines[3])
elif diceOutPut == "5":
lblRollOutput.config(text=lines[4])
elif diceOutPut == "6":
lblRollOutput.config(text=lines[5])
else:
lblRollOutput.config(text="There has been an error, sorry.")
def createDice():
mainMenu.destroy()
global createMenu
createMenu = tkinter.Tk()
createMenu.title("Dice Maker.")
global lblName
global entName
global lblOutcomes
global entOut1
global entOut2
global entOut3
global entOut4
global entOut5
global entOut6
global btnConfirm
lblName = tkinter.Label(createMenu, text="What would you like to call your dice? Dont put .[file type] at the end.")
entName = tkinter.Entry(createMenu)
lblOutcomes = tkinter.Label(createMenu, text="Enter the outcomes for the dice, the bottom one is outcome 6.")
entOut1 = tkinter.Entry(createMenu)
entOut2 = tkinter.Entry(createMenu)
entOut3 = tkinter.Entry(createMenu)
entOut4 = tkinter.Entry(createMenu)
entOut5 = tkinter.Entry(createMenu)
entOut6 = tkinter.Entry(createMenu)
btnConfirm = tkinter.Button(createMenu, text="Confirm", command=createDice2)
lblName.pack()
entName.pack()
lblOutcomes.pack()
entOut1.pack()
entOut2.pack()
entOut3.pack()
entOut4.pack()
entOut5.pack()
entOut6.pack()
btnConfirm.pack()
def createDice2():
global name
global nameTxt
global out1
global out2
global out3
global out4
global out5
global out6
name = entName.get()
nameTxt = name + ".txt"
out1u = entOut1.get()
out2u = entOut2.get()
out3u = entOut3.get()
out4u = entOut4.get()
out5u = entOut5.get()
out6u = entOut6.get()
out1 = out1u + "\n"
out2 = out2u + "\n"
out3 = out3u + "\n"
out4 = out4u + "\n"
out5 = out5u + "\n"
out6 = out6u + "\n"
f = open(nameTxt, 'w')
f.write(out1)
f.write(out2)
f.write(out3)
f.write(out4)
f.write(out5)
f.write(out6)
f.close()
createMenu.destroy()
restartpls = tkinter.Tk()
restartpls.title("Restart this program")
lblrestart = tkinter.Label(restartpls, text="Please restart this program, this is needed so that\n the program can see that you have created\n a new dice.")
lblrestart.pack()
restartpls.mainloop()
sys.exit()
def loadDice():
for dice_file_name in glob.glob('*.txt'):
print(dice_file_name)
btnDie = tkinter.Button(frameCustomDice, text=os.path.splitext, command=read_dice_lines(dice_file_name)[0])
btnDie.pack()
mainMenu.update()
def exit():
sys.exit()
def mainMenu():
global mainMenu
mainMenu = tkinter.Tk()
mainMenu.title("Menu")
global frameCustomDice
frameCustomDice = tkinter.Frame(height=2, bd=1, relief=tkinter.SUNKEN)
btnCreateDice = tkinter.Button(mainMenu, text="Create Dice", command=createDice)
btnLoadDice = tkinter.Button(mainMenu, text="Load Dice", command=loadDice)
btnExit = tkinter.Button(mainMenu, text="Exit", command=exit)
btnCreateDice.pack()
btnLoadDice.pack()
frameCustomDice.pack()
btnExit.pack()
mainMenu.mainloop()
mainMenu()
Je crée un programme dans lequel vous pouvez créer vos propres dés et les utiliser ensuite. En haut de mon code j'essaie de mettre dans une liste les 6 lignes qui sont dans un fichier pour les dés. Quand je lance le code et appuie sur 'Load Dice' il arrive avec cette erreur: btnDie = tkinter.Button (frameCustomDice, texte = os.path.splitext, commande = read_dice_lines (nom_du_fichier) [0]) TypeError: read_dice_lines () prend 0 arguments de position mais 1 a été donné, comment vais-je résoudre ce problème? Toute aide sera grandement appréciée.Erreur lors de la lecture des lignes d'un fichier (Python)
Pourquoi tant de variables 'global'? – pstatix
Parce que si j'ai besoin d'utiliser quelque chose ailleurs, je l'aurais déjà global. –
Ensuite, vous devriez reconcevoir afin d'utiliser efficacement les variables locales en passant des arguments. – pstatix