Làm thế nào để bạn hiển thị dữ liệu dạng bảng trong python?

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

Chủ Đề