目的: "タブ"(選択したタブに基づいて情報を変更することができます)と、同じ部分を常に表示する部分があるGUIを作成しようとしています。Python Tkinterのタブとキャンバス
import ttk
import Tkinter
def demo():
#root = tk.Tk()
schedGraphics = Tkinter
root = schedGraphics.Tk()
root.title("Testing Bot")
universal_height = 606
canvas = schedGraphics.Canvas(root,width = 900, height = universal_height)
nb = ttk.Notebook(root)
# adding Frames as pages for the ttk.Notebook
# first page, which would get widgets gridded into it
page1 = ttk.Frame(nb,width = 300,height = universal_height)
# second page
page2 = ttk.Frame(nb,width = 300,height = universal_height)
nb.add(page1, text='One')
nb.add(page2, text='Two')
#
nb.grid()
day_label = schedGraphics.Label(page1, text="Day1:")
day_label.pack()
day_label.place(x=0, y=30)
day_label = schedGraphics.Label(page2, text="Day2:")
day_label.pack()
day_label.place(x=0, y=30)
canvas.create_rectangle(50,500,300,600,fill = "red")
canvas.grid()
root.mainloop()
if __name__ == "__main__":
demo()
問題:タブがない左側の画面の中央に配置されている現在の構成で
。
canvas.grid()をcanvas.pack()に変更しても、実際にはウィンドウが開きませんか?
キャンバスの四角形が表示されません!
ありがとうございます。お使いのノートブックをグリッド化する場合、これを行うには、引数column
を渡すと、それはこのように、左端に位置されるように、0を選択することが
ポイント#1は誤解を招く恐れがあります。 1つは、列0を使用すると言いますが、列1を使用して表示します。もう1つは、最も左の列にあるという理由だけで、ウィンドウの左端に当たることを保証しません。 –
@BryanOakleyその誤字をおかけして申し訳ありません、それを指摘していただきありがとうございます。第2のポイントは、はるか左に私はノートブックとエッジの間に何もないことを意味しますが、必ずしもそれがそれに固執するとは限りません。 – TrakJohnson
ありがとう@TrakJohnson!完璧な答えと私が欲しかったものを正確に行います。フォローアップの質問:私は、タブ上で矩形の描画(そして私がキャンバスにドラッグできるようにする)をしたいとします。私はすでにキャンバス上で動作するドラッグコードを持っていますが、私は "タブ"に描画する四角形を取得することはできません – smarttylerthecreator