Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bar skrol Treeview dalam Python-Tkinter

Bar skrol Treeview dalam Python-Tkinter

WBOY
WBOYke hadapan
2023-08-20 17:57:542140semak imbas

Bar skrol Treeview dalam Python-Tkinter

Apabila bekerja dengan data hierarki dalam antara muka pengguna grafik (GUI), selalunya perlu untuk memaparkan data dalam cara yang berstruktur dan teratur. Widget Treeview dalam Python-Tkinter menyediakan penyelesaian yang berkuasa untuk mempersembahkan data hierarki dengan cara yang mesra pengguna. Walau bagaimanapun, apabila bilangan item dalam Treeview meningkat, menjadi penting untuk memasukkan bar skrol untuk memastikan navigasi dan kebolehgunaan yang lancar.

Pertama, pastikan Python dan Tkinter dipasang pada sistem anda. Python 3 disyorkan untuk keserasian dan fungsi yang lebih baik. Jika anda tidak memasang Tkinter, anda boleh memasangnya dengan mudah menggunakan pip pengurus pakej Python. Buka terminal atau command prompt anda dan jalankan arahan berikut

pip install tk

Dengan Tkinter dipasang, anda akan mempunyai akses kepada kit alat GUI berkuasa yang anda perlukan untuk membina widget Treeview dan menambah bar skrol.

Buat pemandangan pokok

Pertama, kami akan mencipta widget Treeview asas. Buka editor teks kegemaran anda atau persekitaran pembangunan bersepadu (IDE) dan buat fail Python baharu. Kami akan mulakan dengan mengimport modul yang diperlukan -

import tkinter as tk
from tkinter import ttk

Modul tkinter menyediakan asas untuk membina aplikasi GUI dalam Python, dan modul ttk mengandungi widget bertema, termasuk widget Treeview.

Seterusnya, mari buat tetingkap akar Tkinter dan widget Treeview. Tambahkan kod berikut pada fail Python anda −

root = tk.Tk()

# Create a Treeview widget
tree = ttk.Treeview(root)
tree.pack()

Di sini, kami menggunakan tk.Tk() untuk mencipta tetingkap akar, yang berfungsi sebagai tetingkap utama aplikasi kami. Kemudian, kami mencipta objek pokok kelas ttk.Treeview, yang mewakili widget Treeview kami. Akhir sekali, kami menggunakan kaedah pek untuk memaparkan widget Treeview dalam tetingkap akar.

Tambahkan bar skrol

Untuk menambah bar skrol pada Treeview kami, kami akan menggunakan widget ttk.Scrollbar yang disediakan oleh Tkinter. Bar skrol membolehkan tatal menegak lancar apabila item dalam Treeview melebihi ruang yang tersedia.

Selepas mencipta widget TreeView, tambah kod berikut untuk mencipta bar skrol dan konfigurasikan TreeView untuk menggunakannya

# Create a Scrollbar
scrollbar = ttk.Scrollbar(root, orient="vertical", command=tree.yview)

# Configure the Treeview to use the scrollbar
tree.configure(yscrollcommand=scrollbar.set)

# Place the scrollbar on the right side of the Treeview
scrollbar.pack(side="right", fill="y")

Di sini, kami mencipta objek bar skrol kelas ttk.Scrollbar, menentukan orientasi sebagai "menegak" menggunakan parameter orientasi Parameter arahan ditetapkan kepada tree.yview, yang mengaitkan bar skrol dengan tatal menegak Treeview.

Seterusnya, kami mengkonfigurasi Treeview untuk menggunakan kaedah set bar skrol sebagai pilihan yscrollcommandnya. Ini memastikan bar skrol mengawal tatal menegak Treeview.

Akhir sekali, kami menggunakan kaedah pek untuk meletakkan bar skrol di sebelah kanan widget Treeview, menggunakan pilihan fill="y" untuk menjadikannya mengisi keseluruhan ketinggian Treeview.

Dengan penambahan ini, jika anda kini menjalankan fail Python, anda akan melihat widget Treeview disertai dengan bar skrol menegak di sebelah kanan. Bar skrol akan membenarkan menyemak imbas kandungan Treeview apabila diperlukan.

Pandangan pokok penuh

Sekarang kita telah menyediakan TreeView dan bar skrol, mari isikan TreeView dengan beberapa data sampel. Dengan cara ini kita boleh melihat bagaimana bar skrol berkelakuan apabila berurusan dengan sejumlah besar item.

Untuk menambah lajur dan item pada Treeview, ubah suai fail Python anda seperti berikut

# Add columns to the Treeview
tree["columns"] = ("Name", "Age")

# Define column headings
tree.heading("#0", text="ID")
tree.heading("Name", text="Name")
tree.heading("Age", text="Age")

# Add items to the Treeview
tree.insert("", "end", text="1", values=("John Doe", "30"))
tree.insert("", "end", text="2", values=("Jane Smith", "25"))
tree.insert("", "end", text="3", values=("Mike Johnson", "35"))

Di sini kami telah menambahkan dua lajur pada Treeview dengan menetapkan sifat lajur kepada tuple yang mengandungi nama lajur: "Nama" dan "Umur". Lajur #0 mewakili lajur pertama lalai, yang akan kami gunakan untuk memaparkan ID. Kami menggunakan kaedah tajuk untuk menetapkan pengepala lajur dengan sewajarnya.

Seterusnya, kami menggunakan kaedah sisipan untuk memasukkan item ke dalam Treeview. Setiap item diwakili oleh ID unik dan lajur yang sepadan mempunyai nilai yang sepadan. Dalam contoh ini, kami memasukkan tiga item yang IDnya ialah 1, 2 dan 3, yang sepadan dengan nama dan umur masing-masing.

Bar skrol bergaya

Walaupun fungsi bar skrol asas adalah penting, anda juga mungkin mahu menyesuaikan penampilannya agar sepadan dengan tema keseluruhan apl anda. Tkinter menyediakan pilihan untuk mengubah suai gaya bar skrol menggunakan kelas ttk.Style. Mari terokai cara menggayakan bar skrol untuk mencapai rupa yang lebih selaras.

Mula-mula, import modul ttk dan buat contoh kelas ttk.Style

from tkinter import ttk

# Create a Style object
style = ttk.Style()

Seterusnya, kita boleh mengkonfigurasi gaya bar skrol. Dalam contoh ini, kami akan menukar warna latar belakang bar skrol, warna pemegang dan ketebalan. Tambahkan kod berikut selepas mencipta objek gaya

# Configure the style for the scrollbar
style.configure("Treeview.Scrollbar",
                background="gray",
                troughcolor="light gray",
                gripcount=0,
                gripcolor="white",
                gripinset=2,
                gripborderwidth=0,
                thickness=10)

Di sini, kami menggunakan kaedah konfigurasi kelas ttk.Style untuk menyesuaikan penampilan bar skrol. Rentetan "Treeview.Scrollbar" merujuk kepada elemen gaya khusus yang ingin kami ubah suai.

在这个例子中,我们将滚动条的背景颜色设置为灰色,槽的颜色设置为浅灰色,手柄的颜色设置为白色。gripcount选项设置为0以隐藏手柄,并使用gripinset和gripborderwidth选项调整手柄的外观。最后,我们将滚动条的厚度设置为10像素。

将自定义样式应用于滚动条,将其与 Treeview 小部件关联。将滚动条创建代码修改如下 

# Create a Scrollbar with the customized style
scrollbar = ttk.Scrollbar(root, orient="vertical", command=tree.yview, style="Treeview.Scrollbar")

通过将style参数指定为"Treeview.Scrollbar",滚动条将使用之前定义的自定义样式。

保存Python文件并运行它。现在你应该在Treeview中看到带有更新样式的滚动条。

测试滚动条

保存Python文件并运行。您应该会看到一个带有Treeview小部件和垂直滚动条的窗口。尝试调整窗口大小或向Treeview添加更多项目,以查看滚动条的效果。

结论

在这里,我们探讨了如何在Python-Tkinter中为Treeview小部件添加滚动条。我们首先创建了一个基本的Treeview,然后添加了一个垂直滚动条,以实现对Treeview内容的平滑滚动。我们还介绍了如何样式化滚动条,以使其与应用程序的整体主题相匹配。此外,我们还学习了如何处理滚动条事件,使我们能够对用户交互作出特定的响应。通过按照这些步骤,您可以通过添加可滚动的Treeview来增强您的Python-Tkinter应用程序,为导航分层数据提供高效和用户友好的方式。

Atas ialah kandungan terperinci Bar skrol Treeview dalam Python-Tkinter. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam