簡體   English   中英

如何更改顯示tkinter Scale小部件當前值的一側?

[英]How to change the side where the current value of the tkinter Scale widget is being displayed?

我正在使用tkinter Scale小部件,我有兩個彼此相鄰的音階。 我希望其中一個的數字轉到另一邊。

這是我正在使用的代碼:

#IMPORTS
from tkinter import *
import time

#USER INPUT
user = input("Please Enter Your Username")
time.sleep(0.4)
pass_ = imput("Please Enter Your Password")
time.sleep(0.6)              

#DEFINITIONS

#STUFF
master = Tk()

#LEFT
left = Scale(master,from_=0,to=249,length=550,width=25,tickinterval=152,sliderlength=30)
left.pack()
left.set(152)
left.grid(row=0, column=3)

#RIGHT
right = Scale(master,from_=0,to=249,length=550,width=25,tickinterval=152,sliderlength=30)
right.pack()
right.set(152)
right.grid(row=0, column=6)

#BUTTONS
send = Button(master,text="Send To Bot",command=send)
send.pack()
send.grid(row=15, column=4)

#RUN CANVAS
mainloop()

我希望正確的比例在右側和左側刻度上有數字在左側(默認設置)。

(順便說一下,這個編碼沒有完成,這就是定義沒有完成的原因。)

我不認為有一種方法可以指定小部件顯示在哪一側。 但是,您可以自定義窗口小部件的showvalue屬性以關閉默認標簽,並將IntVar()分配給縮放的variable屬性以從外部監視滑塊的值,並更新可以放置在任何位置的Label窗口小部件作為值滑塊更改:

master = Tk()

leftValue = IntVar()  # IntVars to hold
rightValue = IntVar() # values of scales

leftScale = Scale(master, from_=0, to=249, variable=leftValue, showvalue=0)
leftScale.set(152)

rightScale = Scale(master, from_=0, to=249, variable=rightValue, showvalue=0)
rightScale.set(152)

leftLabel = Label(master, textvariable=leftValue)   # labels that will update
rightLabel = Label(master, textvariable=rightValue) # with IntVars as slider moves

leftLabel.grid(row=0, column=0)
leftScale.grid(row=0, column=1)
rightLabel.grid(row=0, column=3)
rightScale.grid(row=0, column=2)

mainloop()

當然,標簽不會隨着滑塊的變化而移動,但是如果你真的需要這個功能,你可以考慮創建一個Frame的子類,並找到一種方法來改變Label的幾何形狀,因為滑塊的值會發生變化。

編輯:就像一個注釋,你不應該在你的代碼中混合包和網格。 所有這些小部件都應該只由一個幾何管理器處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM