Вы можете настроить другой StringVar
для textvariable
из balance_label
:
balance_label = tk.Label(..., textvariable=self.balance_var,...)
Затем настроить trace()
на controller.shared_data['Balance']
и обновить self.balance_var
в обратном вызове трассировки:
self.balance_var.set('$'+str(self.controller.shared_data['Balance'].get()))
Поскольку у меня нет полной картины вашего кода, ниже приведены предлагаемые изменения в вашем коде:
class BalancePage(tk.Frame):
def __init__(self, parent, controller, *args, **kw):
...
self.controller = controller
self.balance_var = tk.StringVar()
controller.shared_data['Balance'].trace('w', self.on_balance_changed)
balance_label = tk.Label(self, textvariable=self.balance_var, font=('orbitron',13),
fg='white', bg='#3d3d5c', anchor='w')
balance_label.pack(fill='x')
...
def on_balance_changed(self, *args):
self.balance_var.set('$'+str(self.controller.shared_data['Balance'].get()))