Skip to main content
 首页 » 编程设计

python之Tkinter 标度中的对数标度

2025年05月04日10rubylouvre

是否可以创建具有对数值的 Tkinter 比例小部件?或者,将刻度设置为相应的值?我需要 10^4 到 10^9 范围内的比例,指数是整数。

我正在考虑相应地标记“轴”,但 10^x 的描述确实更实用和直观。

请您参考如下方法:

from Tkinter import * 
 
class Slider(Frame): 
    def __init__(self, parent=None ): 
        Frame.__init__(self, parent) 
        self.number = 0 
        self.slide = Scale(self, orient=HORIZONTAL, command=self.setValue, 
                           length=200, sliderlength=20, 
                           showvalue=0, tickinterval=1, 
                           fro=4, to=9, font=('Arial',9)) 
        self.text = Label(self, font=('Arial',18)) 
        self.slide.pack(side=RIGHT, expand=1, fill=X) 
        self.text.pack(side=TOP, fill=BOTH) 
        self.unimap = {'4':u'\u2074','5':u'\u2075','6':u'\u2076', 
                       '7':u'\u2077','8':u'\u2078','9':u'\u2079'} 
 
    def setValue(self, val): 
        self.number = (10**(int(val))) 
        self.text.configure(text='10%s' %(self.unimap[val])) 
 
root = Tk() 
s = Slider(root) 
s.pack() 
root.mainloop()