J'ai posé une question concernant l'insertion d'un texte dans deux champs de saisie alors qu'il ne devrait être inséré que dans un seul. Les lignes de code qui posent problème sont les suivantes :
MoneyAvailableTextBox = Entry(temp, font=('arial', 14, 'bold'), bg='White', fg = 'Black', bd = 5, width = 10, borderwidth = 4, justify = CENTER, text = '£')
MoneyAvailableTextBox.grid(row = 1, column = 0, pady = 10)
HeistAwardTextBox = Entry(temp, font=('arial', 14, 'bold'), bg='White', fg = 'Black', bd = 5, width = 10, borderwidth = 4, justify = CENTER, text = '£')
HeistAwardTextBox.grid(row = 3, column = 0, pady = 10)
Un de mes amis a fini par comprendre le problème et j'ai répondu à ma propre question au cas où quelqu'un d'autre serait confronté à ce problème. Le problème était que les deux boîtes de saisie avaient text = '£'
. Mon ami a simplement modifié l'un d'entre eux pour qu'il ait la valeur $
et le problème a été résolu. Les supprimer permet également de résoudre le problème. Ni lui ni moi ne savons pourquoi le fait d'avoir à saisir des boîtes avec le même text = '£'
fait en sorte qu'ils soient traités comme la même boîte de saisie.
J'ai reproduit le problème ci-dessous. J'ai simplifié le code.
import tkinter as tk
from tkinter import*
trialGUI = Tk()
trialGUI.title('Text Boxes')
#This is the text which will be inserted
value1 = 'Hello'
value2 = 'Bye'
#This inserts the text into the entry boxes
def updateStats():
entryBox1.delete('0', END)
#This should insert Hello in the first box
entryBox1.insert(tk.INSERT, value1)
entryBox2.delete('0', END)
#This should insert Bye in the second box
entryBox2.insert(tk.INSERT, value2)
# These are the text boxes
entryBox1 = Entry(trialGUI, text = '£')
entryBox1.grid(row = 0)
entryBox2 = Entry(trialGUI, text = '£')
entryBox2.grid(row = 1)
#Button which when pressed inserts texting into the entry boxes
Button1 = Button(trialGUI, command = updateStats, text = 'Insert Text')
Button1.grid(row = 2)
trialGUI.mainloop()
Comme je l'ai dit, ce problème a été résolu. Je cherche simplement à savoir pourquoi le problème se pose en premier lieu.