亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在scalewidget中插入時間戳

如何在scalewidget中插入時間戳

寶慕林4294392 2023-09-12 17:19:41
我怎樣才能做到這一點 01:42我努力了:Scale(a,label='Current',from_='00:00',to='02:00',tickinterval='02:00',resolution='00:01',orient=HORIZONTAL,sliderlength=26,length=300)但沒用
查看完整描述

1 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

不幸的是,您無法更改顯示值的格式。您必須創建自己的標簽,而不是使用小部件內置的標簽。您可以通過將命令附加到小部件并讓該命令更新標簽來做到這一點。

由于您嘗試表示時間,因此我建議將fromto選項設置為秒數,可以輕松地將其重新格式化為分鐘和秒。

下面是一個自定義類的基本示例,它使用固定標簽(即:它保持居中)并將值顯示為分鐘:秒。

https://img1.sycdn.imooc.com//65002d660001cc5301350106.jpg

import tkinter as tk


class CustomScale(tk.Frame):

    def __init__(self, master, *args, **kwargs):

        from_ = kwargs.pop("from_", 0)

        to = kwargs.pop("to", 120)

        orient = kwargs.pop("orient", "vertical")

        super().__init__(*args, **kwargs)


        self.value_label = tk.Label(self, text="00:00")

        self.scale = tk.Scale(

            self, from_=from_, to=to, tickinterval=0,

            command=self.update_label, showvalue=False,

            orient=orient

        )

        self.value_label.pack(side="top", fill="x")

        self.scale.pack(side="bottom", fill="x")


    def update_label(self, value):

        value = int(value)

        minutes = value//60

        seconds = value%60


        self.value_label.configure(text=f"{minutes:02}:{seconds:02}")


root = tk.Tk()

scale = CustomScale(root, from_=0, to=120, orient="horizontal")


scale.pack(side="top", padx=20, pady=20)


root.mainloop()


查看完整回答
反對 回復 2023-09-12
  • 1 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號