Trước khi chúng ta bắt đầu. Hướng dẫn Python này là một phần trong loạt bài hướng dẫn Gói Python của chúng tôi. Bạn cũng có thể tìm các chủ đề khác liên quan đến Tkinter
Nếu ứng dụng Python của bạn hoạt động với dữ liệu, bạn có thể muốn hiển thị nó trong giao diện người dùng của mình. Phương pháp tiêu chuẩn để hiển thị dữ liệu trong các ứng dụng GUI là ở định dạng bảng [dạng bảng], bao gồm các hàng và cột giống như một bảng tính. Thật không may, Tkinter không cung cấp tiện ích để tạo bảng
May mắn thay, có các phương pháp thay thế để tạo bảng hiển thị dữ liệu trong Tkinter. Ví dụ: tiện ích Mục nhập có thể được mã hóa để hiển thị dữ liệu trong một bảng và cũng có các gói bảng có thể được tải xuống từ Chỉ mục gói Python [PyPI] và cài đặt
Sau khi bạn quyết định một phương pháp, bảng Tkinter có thể được sử dụng làm giao diện cho một hoặc nhiều bảng có liên quan có trong cơ sở dữ liệu để lưu trữ lâu dài hoặc vĩnh viễn
Cách hiển thị dữ liệu trong bảng tiện ích nhập Tkinter
Xem bản demo trong video này hoặc tiếp tục cuộn để nhận hướng dẫn và đoạn mã
Tiện ích Mục nhập thường được sử dụng để nhập hoặc hiển thị một chuỗi văn bản, nhưng tiện ích này cũng có thể được sử dụng cùng với phạm vi[] function and for loop to display values in a table of multiple rows and columns.
Trong ví dụ này, hàm range[] tạo danh sách các số được điền vào bảng tiện ích Mục nhập gồm 5 hàng và 4 .
from tkinter import * rows = [] for i in range[5]: cols = [] for j in range[4]: e = Entry[relief=GROOVE] e.grid[row=i, column=j, sticky=NSEW] e.insert[END, '%d.%d' % [i, j]] cols.append[e] rows.append[cols] mainloop[]
Cách hiển thị dữ liệu trong bảng tiện ích Tkinter Tksheet
Tksheet là gói bên thứ ba có sẵn trong PyPI. Nó cung cấp một tiện ích bảng Tkinter với nhiều tùy chọn, bao gồm menu bật lên [nhấp chuột phải] cho phép bạn thêm và xóa hàng, chỉnh sửa dữ liệu trong ô và hoàn tác các thay đổi. Tọa độ hàng và cột [x. y] được hiển thị trong mỗi ô theo mặc định và có thể được thay thế bằng dữ liệu khác.
Gói Tksheet có thể được cài đặt trong một thiết bị đầu cuối hoặc dòng lệnh, bằng cách nhập
pip install tksheet
Trong ví dụ này, hàm range[] tạo danh sách các số dựa trên công thức lưới của hàng {ri} and column {cj} coordinates, and then populates the values in a table consisting of 1 row and 4 columns:
import tkinter as tk import tksheet top = tk.Tk[] sheet = tksheet.Sheet[top] sheet.grid[] sheet.set_sheet_data[[[f"{ri+cj}" for cj in range[4]] for ri in range[1]]] # table enable choices listed below: sheet.enable_bindings[["single_select", "row_select", "column_width_resize", "arrowkeys", "right_click_popup_menu", "rc_select", "rc_insert_row", "rc_delete_row", "copy", "cut", "paste", "delete", "undo", "edit_cell"]] top.mainloop[]
Cách hiển thị dữ liệu SQLite trong bảng Tkinter
Bảng Tkinter có thể đóng vai trò là giao diện cho dữ liệu nằm trong bộ lưu trữ vĩnh viễn, chẳng hạn như cơ sở dữ liệu SQLite. Trong trường hợp này, một câu lệnh SQL thường được sử dụng để chọn tất cả hoặc một số dữ liệu trong một hoặc nhiều bảng cơ sở dữ liệu để hiển thị trong bảng. Ví dụ
# Một câu lệnh SQL chọn tất cả dữ liệu từ một bảng
SELECT * from
Lưu ý rằng dữ liệu được hiển thị trong bảng Tkinter không cố định, nhưng câu lệnh truy vấn được lưu tự động vào cơ sở dữ liệu để sử dụng trong tương lai
Trong ví dụ này, bảng Tkinter được sử dụng làm giao diện để hiển thị dữ liệu trong bảng cơ sở dữ liệu SQLite
from tkinter import ttk import tkinter as tk import sqlite3 def connect[]: con1 = sqlite3.connect[""] cur1 = con1.cursor[] cur1.execute["CREATE TABLE IF NOT EXISTS table1[id INTEGER PRIMARY KEY, First TEXT, Surname TEXT]"] con1.commit[] con1.close[] def View[]: con1 = sqlite3.connect[""] cur1 = con1.cursor[] cur1.execute["SELECT * FROM "] rows = cur1.fetchall[] for row in rows: print[row] tree.insert["", tk.END, values=row] con1.close[] # connect to the database connect[] root = tk.Tk[] tree = ttk.Treeview[root, column=["c1", "c2", "c3"], show='headings'] tree.column["#1", anchor=tk.CENTER] tree.heading["#1", text="ID"] tree.column["#2", anchor=tk.CENTER] tree.heading["#2", text="FNAME"] tree.column["#3", anchor=tk.CENTER] tree.heading["#3", text="LNAME"] tree.pack[] button1 = tk.Button[text="Display data", command=View] button1.pack[pady=10] root.mainloop[]
Cách hiển thị dữ liệu Pandas và Numpy trong bảng Tkinter
Trong ví dụ này, cấu trúc dữ liệu Pandas và Numpy được hiển thị trong bảng Tkinter
import pandas as pd import numpy as np import sys from tkinter import * root = Tk[] root.geometry['580x250'] dates = pd.date_range['20210101', periods=8] dframe = pd.DataFrame[np.random.randn[8,4],index=dates,columns=list['ABCD']] txt = Text[root] txt.pack[] class PrintToTXT[object]: def write[self, s]: txt.insert[END, s] sys.stdout = PrintToTXT[] print ['Pandas date range of 8 values in 1 timestamp column adjacent to a numpy random float array of 8 rows and 4 columns, displayed in a Tkinter table'] print [dframe] mainloop[]
Bước tiếp theo
Bây giờ bạn đã biết cách sử dụng trình quản lý bố cục Pack[] của Tkinter, hãy chuyển sang những thứ khác mà bạn có thể làm với Tkinter
- Cách sử dụng gói trong Tkinter
- Cách cài đặt Tkinter trong Windows
- Cách định vị các nút trong Tkinter
- Tkinter dùng để làm gì và cài đặt Python Framework này như thế nào?
Nhận phiên bản Python được biên dịch sẵn cho Khoa học dữ liệu
Mặc dù bản phân phối mã nguồn mở của Python có thể phù hợp với một cá nhân, nhưng nó không phải lúc nào cũng đáp ứng các yêu cầu về hỗ trợ, bảo mật hoặc nền tảng của các tổ chức lớn
Đây là lý do tại sao các tổ chức chọn ActivePython cho nhu cầu khoa học dữ liệu, xử lý dữ liệu lớn và phân tích thống kê của họ
Được đóng gói sẵn với các gói quan trọng nhất mà Nhà khoa học dữ liệu cần, ActivePython được biên dịch sẵn để bạn và nhóm của bạn không phải lãng phí thời gian để định cấu hình bản phân phối nguồn mở. Bạn có thể tập trung vào những gì quan trọng – dành nhiều thời gian hơn để xây dựng các thuật toán và mô hình dự đoán đối với các nguồn dữ liệu lớn của bạn và ít thời gian hơn cho cấu hình hệ thống