Текст не меняется при использовании Tkinter In Python - PullRequest
0 голосов
/ 10 марта 2020

Я делаю проект для школы с историей и легендами sh, но не могу получить две кнопки (Engli sh & Cymraeg), чтобы изменить две метки, когда я нажимаю на них. Любая помощь будет оценена !!

from tkinter import BOTH, Canvas
from tkinter import *

Titlet = 'Welsh History And Legends'
startt = 'Click Here To Start'

master = tk.Tk()
master.title('2020 Coding Challenge - Josh Allan')
master.configure(background = 'black')


def English():
    Titlet = 'Welsh History And Legends'
    startt = 'Click Here To Start'

def Welsh():
    Titlet = 'Hanes A Chwedlau Cymraeg'
    startt = 'Cliciwch Yma I Cychwyn'   

title = tk.Label(master, text = (Titlet), font = 'fixedsys 20 bold', fg = 'white', background = 'black')
title.grid(row = 0, columnspan = 2)
ph = tk.Label(master, bg = 'black')
ph.grid(row=2)
LangE = tk.Button(master, text = 'English', font = 'Verdana 9 bold', fg = 'gray', background = 'black', command = English())
LangE.grid(row = 3, column = 0)
LangC = tk.Button(master, text = 'Cymraeg', font = 'Verdana 9 bold', fg = 'gray', background = 'black', command = Welsh())
LangC.grid(row = 3, column = 1)
ph = tk.Label(master, bg = 'black')
ph.grid(row=4)
press_start = tk.Button(master, text = (startt), font = 'Verdana 9 bold', fg = 'gray', background = 'black')
press_start.grid(row = 5, columnspan = 2)

tk.mainloop()


Ответы [ 2 ]

1 голос
/ 11 марта 2020

Вам не требуется () в конце вашей команды = функция

Например:
вместо

LangE = tk.Button(master, text = 'English', font = 'Verdana 9 bold', fg = 'gray', background = 'black', command = English())

put

LangE = tk.Button(master, text = 'English', font = 'Verdana 9 bold', fg = 'gray', background = 'black', command = English)
0 голосов
/ 11 марта 2020

Вы можете использовать глобальные переменные и иметь свои функции English и Welsh для настройки вашей метки. Однако я бы предпочел использовать опции tk.StringVar и textvariable для вашего ярлыка.

import tkinter as tk


master = tk.Tk()
Titlet = tk.StringVar(master, 'Welsh History And Legends')
master.title('2020 Coding Challenge - Josh Allan')
master.configure(background = 'black')


def English():
    Titlet.set('Welsh History And Legends')

def Welsh():
    Titlet.set('Hanes A Chwedlau Cymraeg')  

title = tk.Label(master, text = (Titlet), 
                 font = 'fixedsys 20 bold', 
                 fg = 'white', 
                 background = 'black',
                 textvariable=Titlet)
title.grid(row = 0, columnspan = 2)
ph = tk.Label(master, bg = 'black')
ph.grid(row=2)
LangE = tk.Button(master, text = 'English', font = 'Verdana 9 bold', 
                  fg = 'gray', background = 'black', command = English)
LangE.grid(row = 3, column = 0)
LangC = tk.Button(master, text = 'Cymraeg', font = 'Verdana 9 bold', 
                  fg = 'gray', background = 'black', command = Welsh)
LangC.grid(row = 3, column = 1)
ph = tk.Label(master, bg = 'black')
ph.grid(row=4)

tk.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...