为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 tkinter 中的 textvariable 前面插入 '$' 符号

如何在 tkinter 中的 textvariable 前面插入 '$' 符号

森栏 2023-04-25 17:52:07
我使用 tkinter 创建了一个 ATM,它在单击余额按钮时显示当前余额,它添加了不同类别的存入和提取的钱,这些钱从设置为 0 的当前余额和余额中添加或减去被存储在class SampleApp(tk.Tk):    def __init__(self, *args, **kwargs):        tk.Tk.__init__(self, *args, **kwargs)        self.shared_data={'Balance':tk.IntVar()}剩余余额会显示在屏幕上class BalancePage(tk.Frame):        global current_balance        controller.shared_data['Balance'].set(current_balance)            balance_label=tk.Label(self,textvariable=controller.shared_data['Balance'],font=('orbitron',13),fg='white',bg='#3d3d5c',anchor='w')        balance_label.pack(fill='x')我只想在显示的金额前显示一个“$”符号(即为 0 并且想要 $0)请帮助#WithdrawPageclass WithdrawPage(tk.Frame):        def withdraw(amount):            global current_balance            if amount>current_balance:                messagebox.showwarning('WARNING','Not sufficient funds!')            else:                current_balance -= amount                controller.shared_data['Balance'].set(current_balance)                controller.show_frame('MenuPage')#DepositPageclass DepositPage(tk.Frame):        def deposit_cash():            global current_balance            current_balance += int(cash.get())            controller.shared_data['Balance'].set(current_balance)            controller.show_frame('MenuPage')            cash.set('')
查看完整描述

3 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

StringVar您可以为textvariableof设置另一个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()))



查看完整回答
反对 回复 2023-04-25
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

尝试balance_label像这样更改文本变量:

balance_label = tk.Label(self, textvariable="$"+controller.shared_data['Balance'], font=('orbitron', 13), fg='white', bg='#3d3d5c', anchor='w')

这应该可以解决问题。


查看完整回答
反对 回复 2023-04-25
?
繁花如伊

TA贡献2012条经验 获得超12个赞

$使用此示例通过将与最终结果连接起来来实现您要执行的操作

print ("$"+ current_balance)

或这个

print ("$", current_balance)


查看完整回答
反对 回复 2023-04-25
  • 3 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信