猿问

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

我使用 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)请帮助

#WithdrawPage

class 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')

#DepositPage

class 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('')


森栏
浏览 122回答 3
3回答

千巷猫影

StringVar您可以为textvariableof设置另一个balance_label:balance_label = tk.Label(..., textvariable=self.balance_var,...)然后在跟踪回调中设置和更新trace():controller.shared_data['Balance']self.balance_varself.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()))

慕勒3428872

尝试balance_label像这样更改文本变量:balance_label = tk.Label(self, textvariable="$"+controller.shared_data['Balance'], font=('orbitron', 13), fg='white', bg='#3d3d5c', anchor='w')这应该可以解决问题。

繁花如伊

$使用此示例通过将与最终结果连接起来来实现您要执行的操作print ("$"+ current_balance)或这个print ("$", current_balance)
随时随地看视频慕课网APP

相关分类

Python
我要回答