0
import tkinter as tk
import tkinter.ttk as ttk

root=tk.Tk()

canvas = tk.Canvas(root, width=300, height=300, borderwidth=0, highlightthickness=0, bg="#000040")
canvas.pack(fill=tk.BOTH, expand=True)

notebookwidth=215

bgcolor="#ECE9D8"

tabs1=ttk.Notebook(root)

tree=ttk.Treeview( tabs1, columns=('Name', 'Info'))

tree.column('#0', stretch=tk.YES)
tree.column('#1', stretch=tk.YES)
tree.column('#2', stretch=tk.YES)

# Initialize the counter
i = 0
s=["Name","Venus","Body Type","Terrestrial Planet","Diameter","12104 km","Orb Distance","108m km","Gravity","0.91"]

for x in range(0, len(s), 2):
    tree.insert('', 'end', text="Item_"+str(i), values=(s[x], s[x+1]))
    # Increment counter
    i = i + 1 

#tree.pack(side=tk.LEFT, anchor=tk.NW, fill=tk.BOTH, expand=True)
tree.grid(row=0, column=0, sticky=tk.N+tk.S+tk.E+tk.W)   
tabs1.add(frame, text="Body Info")
display_window=canvas.create_window(10, 10, anchor=tk.NW, window=tabs1, width=notebookwidth)

root.mainloop()

Linux~python 3.5

キャンバス上の表示ウィンドウのサイズを知っているので、列の幅を変更できることに気づきました

tree.column('#0', stretch=tk.YES, minwidth=0, width=0)
tree.column('#1', stretch=tk.YES, width= 110)
tree.column('#2', stretch=tk.YES, width=110)

ヘッダーとidd列も非表示にしたいので、LayoutManagerを使用してストレッチする方法があるとよいでしょう。また、LayoutManagers をもう少しよく理解するのに役立つと思います。

また、ウィジェットのサイズの操作に関する多くの記事をチェックしました。それらのほとんどは、プログラムでウィンドウのサイズを変更することです。これは起動時の問題です

別の親、パック、グリッドを使用してみました。親としてdisplaywindowを使用する方法を理解できませんでした.tkでpythonエラーがスローされます。

助けてくれてありがとう!

4

1 に答える 1