ttk progress bar似乎缺少Python中的寬度選項。
解決Tkinter按鈕問題(here)。由此我能夠創建一個工作解決方案。
解決該問題的關鍵是將進度條添加到畫布內的window。在畫布內使用窗口不會導致畫布在添加小部件時調整大小,這意味着我們可以控制進度條的寬度。
我已經創造了一些工作示例代碼:
from ttk import Progressbar
import Tkinter
class Example(Tkinter.Frame):
def __init__(self, parent):
Tkinter.Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
value_progress =50
self.parent.title("Progressbar Thingymawhatsit")
self.config(bg = '#F0F0F0')
self.pack(fill = Tkinter.BOTH, expand = 1)
#create canvas
canvas = Tkinter.Canvas(self, relief = Tkinter.FLAT, background = "#D2D2D2",
width = 400, height = 5)
progressbar = Progressbar(canvas, orient=Tkinter.HORIZONTAL,
length=400, mode="indeterminate",
variable=value_progress,
)
# The first 2 create window argvs control where the progress bar is placed
canvas.create_window(1, 1, anchor=Tkinter.NW, window=progressbar)
canvas.grid()
def main():
root = Tkinter.Tk()
root.geometry('500x50+10+50')
app = Example(root)
app.mainloop()
if __name__ == '__main__':
main()
所以總結了進度條的大小相同,但你只是不能看到它的一半!
非常感謝。人們會認爲我們可以直接控制它。但是,沒有人支持這一部分只是讓人想到這一點。這是在盒子外面。 –
花了我一會兒來弄清楚一些事情。知道將它添加到畫布會有所幫助,但畫布會隨後調整到進度條的大小!那是當我找到畫布create_window選項。很高興它的工作,+1如果它的幫助 – Noelkd
上面的例子讓我思考後,我做了很多思考,並提出了以下想法。 首先,創建一個不會展開的框架: 其次,將進度條放在框架內。 最後,用框架的高度屬性控制進度條的粗細。 #進度和幀 Y = LabelFrame(根,寬度= 400,邊界= 0,高度= 5) y.pack(pady = 0) y.pack_propagate(0) 親= ttk.Progressbar(Y ,模式='確定',長度= 400)pro.pack(side = BOTTOM) –