pythontkintertkinter-label

Brackets are in the label


I made a little script in Python with tkinter and when I want to change the label with the results of the script, brackets are shown on each part of the results, between string variable and float.

# tant que v n'est pas égale aux nombre de valeurs
# dans la liste le programme se répète
while v < len(portail_x):
    #  calcule de distance entre deux points avec la formule
    # \sqrt{(x_{b}-x_{a})²+(y_{b}-y_{a})²}=\overrightarrow{AB}
    p1 = sqrt((xj - portail_x[v]) ** 2 + (yj - portail_y[v]) ** 2)

    v = v + 1

    # les distances sont misent dans une nouvelle liste
    portail_total_distance.append(p1)

# définition d'une nouvelle liste
nouv_portail_total_distance = portail_total_distance[:]

# classement des valeurs de la nouvelle liste
# dans l'ordre croissant
nouv_portail_total_distance.sort(reverse=False)

# définition de l'indice pour trouver la plus petite distance dans la liste triée
coor = portail_total_distance.index(nouv_portail_total_distance[0])

# affichage de la réponse
phrase_rep1.set((
    'Le portail le plus proche de toi est à',
    nouv_portail_total_distance[0],
    'blocks de ta position'
))

# affichage de la réponse
phrase_rep2.set((
    'Le portail se trouve aux coodonnée X',
    portail_x[coor],
    'et y',
    portail_y[coor]
))

And the result is this: brackets {} are in the text on the window and I don't know how to remove them:


Solution

  • You should set the value of the label to a single string expression. Either compose it beforehand or do it right in the .set() call:

    # affichage de la réponse
    phrase_rep1.set(f'Le portail le plus proche de toi est à {nouv_portail_total_distance[0]} blocks de ta position')
    
    # affichage de la réponse
    phrase_rep2.set(f'Le portail se trouve aux coodonnée X {portail_x[coor]} et y {portail_y[coor]}')