我已經在Python turtle圖形中創建了一個程序並創建了一些窗口小部件。但是,這些小部件有一個主要問題:他們只是停留在窗口的底部,我不能在屏幕的任何地方將它們移動到任何地方。它們只是從左到右一直停留在底部窗口中,當擁有多個小部件時,這成爲一個真正的問題。澄清,這裏是我正在談論的形象:Python turtle圖形窗口中的tkinter小部件的問題
我想要的是能夠將窗口小部件移動到窗口的頂部,左側或右側,而不是他們只是堅持到它的底部。而且,正如你所看到的,由於我已經創建了很多小部件,我不能這樣做的事實成爲一個真正的問題。 那麼,爲什麼會發生這種情況,我將如何解決它?此外,爲了以防萬一,下面是我的菜單一個和我的按鈕一個的代碼塊:
菜單代碼塊:
tb = Menubutton(text = "Change pen thickness")
tb.pack(side = 'left')
tb.menu = Menu(tb, tearoff = 0)
tb["menu"] = tb.menu
thick = tb.menu
thick.add_command(label = "1", command = width1)
thick.add_command(label = "2", command = width2)
thick.add_command(label = "3", command = width3)
thick.add_command(label = "4", command = width4)
thick.add_command(label = "5", command = width5)
thick.add_command(label = "6", command = width6)
thick.add_command(label = "7", command = width7)
thick.add_command(label = "8", command = width8)
thick.add_command(label = "9", command = width9)
thick.add_command(label = "10", command = width10)
tb.pack()
按鈕的代碼塊:
change = Button(text = "Change letter dimensions", command = NewLetterDimensions)
change.pack(side = 'left')
窗口小部件打包到左邊的事實不是問題,因爲即使在我這樣做之前,窗口小部件仍會停留在窗口底部。唯一的區別是它們是從上到下堆疊而不是從左到右。
Google在尋找解決方案方面沒有太多幫助,所以我正在轉向SO。任何幫助深表感謝!
編輯:我曾嘗試加入master = getcanvas()
並提出,像這樣的小部件之一的大師:
master = getcanvas()
mb = Menubutton(master, text = "Change color")
,現在當我運行程序時,它只是掛起並最終崩潰每一次。之前我曾經嘗試過,當時我只有一個小部件,並且它仍然取得了相同的結果。我真的不知道還有什麼要做,所以非常感謝幫助。
編輯#2:我也試圖創建一個Tkinter的框架,我收拾到畫布的底部,然後使該框架菜單的高手,像這樣:
master = Frame()
master.pack(side = 'top')
mb = Menubutton(master, text = "Change color")
mb.pack(side = 'top')
然而,儘管兩者都設置爲side = 'top'
,但仍停留在屏幕的底部,只有在小部件上的其他人之上,就像這樣:
什麼仍然是G錯了嗎?
編輯#3:這就是我現在越來越爲每答案建議:
我該如何爲畫布創建一個框架?我調用了'getcanvas()',然後執行了這個'mem = getcanvas(); widgetmaster = Frame(mem); widgetmaster.pack(side ='top')'然而,現在每當我啓動程序時,它都會卡住,我必須殺死它。 –
在創建畫布之前創建框架,'FrameCanvas = Frame()'然後在創建畫布時,在框架'YourCanvas = Canvas(FrameCanvas,other_arguments)'中創建它。現在'YourCanvas.pack(側=「你的選擇」)'將確定畫布IN的幀的位置,和'FrameCanvas.pack(側=「你的選擇」)'將確定在窗口 –
的幀的位置好的,所以我創建了畫布。但是我使用了未定義的畫布實例,那麼如何在不創建「RawTurtle」的情況下將畫布重新定義爲「YourCanvas」? –