私はGUIアプリケーションを使ってデータベースからデータを取り出し、ツリービューに表示します。しかし、問題は、私のツリービューは約20列あり、それは多くの方法です。私はアプリケーション全体が自分の画面に収まらないということを意味します。tkinterでtreeviewの目的の列をスクロールする方法
最初は2〜3列だけを表示し、残りの列をスクロールバーで表示します。
最初の3列を表示するのに "displaycolumns"オプションを使用していますが、スクロールバーも作成しましたが、残りの列をスクロールバーで表示する方法がわかりません。
後は私がtkFont
としてTkinterのインポートのFileDialog 輸入tkinter.fontからTkinterをインポートTTK 輸入openpyxl からTK としてそれを輸入のTkinterを簡素化するために、ボタンの方法およびデータベースの機能を削除して、私のコードです
class MainWindow(tk.Tk):
def __init__(self,*args,**kwargs):
tk.Tk.__init__(self,*args,**kwargs)
#Creating Geometry Of the window
#self.geometry("500x500+0+0")
self.title("Test Software")
#Creating Labels
self.agreement_number_label = tk.Label(text="Agreement Number")
self.area_office_label = tk.Label(text="Area office")
self.branch_label = tk.Label(text="Branch")
self.customer_name_label = tk.Label(text="Customer Name")
self.model_label = tk.Label(text="Model")
self.registered_number_label = tk.Label(text="Registered Number")
self.engine_number_label = tk.Label(text="Engine Number")
self.chasis_number_label = tk.Label(text="Chasis Number")
self.make_label = tk.Label(text="Make")
#creating entry fields variables
self.agreement_number = tk.StringVar()
self.area_office = tk.StringVar()
self.branch = tk.StringVar()
self.customer_name = tk.StringVar()
self.model = tk.StringVar()
self.registered_number = tk.StringVar()
self.engine_number = tk.StringVar()
self.chasis_number = tk.StringVar()
self.make = tk.StringVar()
#creating Entry Fields
self.agreement_number_entry = tk.Entry(textvariable = self.agreement_number)
self.area_office_entry = tk.Entry(textvariable = self.area_office)
self.branch_entry = tk.Entry(textvariable = self.branch)
self.customer_name_entry = tk.Entry(textvariable = self.customer_name)
self.model_entry = tk.Entry(textvariable = self.model)
self.registered_number_entry = tk.Entry(textvariable = self.registered_number)
self.engine_number_entry = tk.Entry(textvariable = self.engine_number)
self.chasis_number_entry = tk.Entry(textvariable = self.chasis_number)
self.make_entry = tk.Entry(textvariable = self.make)
#Adding Labels and Entry Fields to the grid
#1st Row Fields
self.agreement_number_label.grid(row=0,column=0,pady=(25,0),sticky="w",padx=(20,0))
self.agreement_number_entry.grid(row=0,column=1,pady=(25,0),sticky="w")
self.area_office_label.grid(row=0,column=2,pady=(25,0),sticky="w")
self.area_office_entry.grid(row=0,column=3,pady=(25,0),sticky="w")
self.branch_label.grid(row=0,column=4,pady=(25,0),sticky="w")
self.branch_entry.grid(row=0,column=5,pady=(25,0),sticky="w",padx=(0,20))
#2nd row fields
self.customer_name_label.grid(row=1,column=0,sticky="w",padx=(20,0))
self.customer_name_entry.grid(row=1,column=1,sticky="w")
self.model_label.grid(row=1,column=2,sticky="w")
self.model_entry.grid(row=1,column=3,sticky="w")
self.registered_number_label.grid(row=1,column=4,sticky="w")
self.registered_number_entry.grid(row=1,column=5,sticky="w",padx=(0,20))
#3rd Row Fields
self.chasis_number_label.grid(row=2,column=0,sticky="w",padx=(20,0))
self.chasis_number_entry.grid(row=2,column=1,sticky="w")
self.engine_number_label.grid(row=2,column=2,sticky="w")
self.engine_number_entry.grid(row=2,column=3,sticky="w")
self.make_label.grid(row=2,column=4,sticky="w")
self.make_entry.grid(row=2,column=5,sticky="w",padx=(0,20))
#Creating a search button
self.search_button = tk.Button(text = "Search Record",width=25)
#Adding the Search Button into the grid
self.search_button.grid(row=3,column=0,columnspan=6,pady=10)
#Adding a Seperator to the grid
ttk.Separator(orient="horizontal").grid(row=4,columnspan=6,sticky="ew")
#Creating A Treeview
self.treeview = ttk.Treeview(height=6)
self.treeview['columns'] = ("One","Two","Three")
self.treeview.column('#0',width=100)
self.treeview.heading("#0", text="Testing")
self.treeview.heading("One", text="Column A")
self.treeview.heading("Two", text="Column B")
self.treeview.heading("Three", text="Column C")
self.treeview.grid(row=5,rowspan=5,column=0,columnspan=4,pady=(10,0))
#Adding Default Data to The Treeview
for i in range(10):
self.treeview.insert("" , "end", text="Line "+str(i), values=("1A","1b"))
#Creating a treeview scrollbar
self.vertical_scrollbar = tk.Scrollbar(orient='vertical')
self.horizontal_scrollbar = tk.Scrollbar(orient='horizontal')
#adding scrollbars to the grid
self.vertical_scrollbar.grid(row=5,column=4,rowspan=6)
self.horizontal_scrollbar.grid(row=10,column=0,columnspan=4)
#configuring scrolls to treeview
self.horizontal_scrollbar.configure(command=self.treeview.xview)
self.vertical_scrollbar.configure(command=self.treeview.yview)
#configuring treeview to Scrollbar
self.treeview.configure(yscrollcommand=self.vertical_scrollbar.set)
self.treeview.configure(xscrollcommand=self.horizontal_scrollbar.set)
#Creating buttons
self.view_all_record_btn = tk.Button(text="View All Records",width=15)
self.add_record_btn = tk.Button(text="Add Record",width=15)
self.edit_record_btn = tk.Button(text="Edit Record",width=15)
self.delete_record_btn = tk.Button(text="Delete Record",width=15)
self.upload_file_btn = tk.Button(text="Upload File",width=15)
#Adding Buttons to the Grid
self.view_all_record_btn.grid(row=5,column=5,pady=(10,0))
self.add_record_btn.grid(row=6,column=5)
self.edit_record_btn.grid(row=7,column=5)
self.delete_record_btn.grid(row=8,column=5)
self.upload_file_btn.grid(row=9,column=5,pady=(0,20))
root = MainWindow()
root.mainloop()
ここで約20列を追加する必要がありますが、残りの列はスクロールバーでのみ表示され、列のスクロールバーはフィンでのみ表示されます。 E私は、列
おかげ
2つのツリービューを作成 - 可視列の1スクロールバーと第二のすべての時間を、。 – furas
申し訳ありませんが、私はそれを得ていませんでした。すべての列が表示されているツリービューを作成した場合、それは適合しません –