ttkプログレス バーには、Python の幅オプションがないようです。
Tkinter ボタンの問題に対する回避策 (こちら) を使用します。これから、実用的なソリューションを作成することができました。
この問題を解決する鍵は、キャンバス内のウィンドウにプログレス バーを追加することでした。キャンバス内でウィンドウを使用しても、ウィジェットが追加されたときにキャンバスのサイズが変更されることはありません。つまり、プログレス バーの幅を制御できます。
私はいくつかの実用的なサンプルコードを作成しました:
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()
要約すると、プログレスバーは同じサイズですが、半分しか見えません!