为什么可以';我是否填充我的tksheet表行? 我正在尝试用python建立学生出勤记录。我已经把大部分都弄明白了。我被困在一个部分,这是护理部分。我尝试使用表格格式(tksheets)来记录学生的姓名和出勤情况。我遇到的问题是如何处理tksheets。我似乎无法从我的DB(SQLite3)中获取信息来填充列。我也尝试过tktables和PandaTables。但我又遇到了同样的问题

为什么可以';我是否填充我的tksheet表行? 我正在尝试用python建立学生出勤记录。我已经把大部分都弄明白了。我被困在一个部分,这是护理部分。我尝试使用表格格式(tksheets)来记录学生的姓名和出勤情况。我遇到的问题是如何处理tksheets。我似乎无法从我的DB(SQLite3)中获取信息来填充列。我也尝试过tktables和PandaTables。但我又遇到了同样的问题,python,tkinter,pycharm,Python,Tkinter,Pycharm,我考虑过使用Treeview小部件在列中填充学生姓名,然后使用输入框添加出勤情况。问题是我必须创建每个输入框并单独放置。我不喜欢这个计划。下面是我正在使用的当前代码 如果有人能告诉我如何从数据库中获取数据并填充我正在使用的电子表格,那就太好了。谢谢 def rows(self): self.grid_columnconfigure(1, weight=1) self.grid_rowconfigure(1,weight=1) self.sh

我考虑过使用Treeview小部件在列中填充学生姓名,然后使用输入框添加出勤情况。问题是我必须创建每个输入框并单独放置。我不喜欢这个计划。下面是我正在使用的当前代码

如果有人能告诉我如何从数据库中获取数据并填充我正在使用的电子表格,那就太好了。谢谢

    def rows(self):
        self.grid_columnconfigure(1, weight=1)
        self.grid_rowconfigure(1,weight=1)
        self.sheet = Sheet(self.aug_tab,
                       data=[[f'Row{r} Column{c}' for c in range(36)]for r in range(24)],
                           height=300,
                           width=900)
        self.sheet.enable_bindings(("single",
                                         "drag_select",
                                         "column_drag_and_drop",
                                         "row_drag_and_drop",
                                         "column_select",
                                         "row_select",
                                         "column_width_resize",
                                         "double_click_column_resize",
                                         "row_width_resize",
                                         "column_height_resize",
                                         "arrowkeys",
                                         "row_height_resize",
                                         "double_click_row_resize",
                                         "right_click_popup_menu",
                                         "rc_insert_column",
                                         "rc_delete_column",
                                         "rc_insert_row",
                                         "rc_delete_row",
                                         "copy",
                                         "cut",
                                         "paste",
                                         "delete",
                                         "undo",
                                         "edit_cell"))
           

        self.headers_list = ("Student ID","Ch. First Name","Ch. Last Name","Eng. Name")
        self.headers = [f'{c}'for c in self.headers_list]
        self.sheet.headers(self.headers)

        self.sheet.pack()
        print(self.sheet.get_column_data(0,0))

    #############DEFINE FUNCTIONS###############################

    rows(self)
“你应该在你的代码和按钮中加入一个函数,你可以一个接一个地插入你的学生姓名,或者将你的学生姓名复制到工作表中,这是我的代码”

“”“你应该在你的代码和按钮中加入一个函数,你可以一个接一个地插入你的学生姓名,也可以将大部分学生姓名复制到工作表中,这是我的代码”“”

“”“如果您想从数据库中获取数据,则必须创建一个主框架并添加按钮,然后将演示tksheet功能作为顶级框架,我已经创建了一个自己的框架以打开我的数据库,您只需在我的代码中用数据库更改数据库。这是我的代码”“”

“”“如果您想从数据库中获取数据,则必须创建一个主框架并添加按钮,然后将演示tksheet功能作为顶级框架,我已经创建了一个自己的框架以打开我的数据库,您只需在我的代码中用数据库更改数据库。这是我的代码”“”


嘿,这很有效,谢谢。现在我可以用DB数据填充工作表。下一步是反向操作,从tksheet中获取数据并填充数据库。再次感谢。这很有效。谢谢。现在我可以用DB数据填充工作表。下一步是反向操作,从tksheet中获取数据并填充数据库。再次感谢
from tksheet import Sheet
import tkinter as tk


class demo(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.grid_columnconfigure(0, weight = 1)
        self.grid_rowconfigure(0, weight = 1)
        self.sheet_demo = Sheet(self,
                                height = 500,
                                width = 700) 
        self.sheet_demo.enable_bindings(("single",
                                         "drag_select",
                                         "column_drag_and_drop",
                                         "row_drag_and_drop",
                                         "column_select",
                                         "row_select",
                                         "column_width_resize",
                                         "double_click_column_resize",
                                         "row_width_resize",
                                         "column_height_resize",
                                         "arrowkeys",
                                         "row_height_resize",
                                         "double_click_row_resize",
                                         "right_click_popup_menu",
                                         "rc_insert_column",
                                         "rc_delete_column",
                                         "rc_insert_row",
                                         "rc_delete_row",
                                         "copy",
                                         "cut",
                                         "paste",
                                         "delete",
                                         "undo",
                                         "edit_cell"))
    
        self.sheet_demo.grid(row = 0, column = 0, sticky = "nswe")
    
 
        self.data = [[f"" for c in range(1)] for r in range(100)]
        self.sheet_demo.data_reference(self.data)
    

        def click_this():
            for i in (self.sheet_demo.get_column_data(0)): 
                if i == '':
                break
                else:
                    print(i.strip())
                    self.data = [[f"" for c in range(1)]for r in range(100)]
                    self.sheet_demo.data_reference(self.data)
                
        button=tk.Button(text=" click this",command= click_this)
        button.grid(row= 1, column=0, sticky= "n")


    
app = demo()
app.mainloop()
import tkinter as tk
import datetime as dt
from tkinter import ttk


def open_window1():
    from tksheet import Sheet
    import tkinter as tk
    import sqlite3

   conn= sqlite3.connect('toko.db')
   c= conn.cursor()

   class demo(tk.Tk):
       def __init__(self):
          tk.Tk.__init__(self)
          self.grid_columnconfigure(0, weight = 1)
          self.grid_rowconfigure(0, weight = 1)
          self.sheet_demo = Sheet(self,
                                  height = 500,
                                  width = 700)
          self.sheet_demo.enable_bindings(("single",
                                   "drag_select",
                                   "column_drag_and_drop",
                                   "column_select",
                                   "row_select",
                                   "arrowkeys",
                                   "column_width_resize",
                                   "row_width_resize",
                                   "copy",
                                   "rc_insert_column",
                                   "rc_insert_row"))

            self.sheet_demo.grid(row = 0, column= 0, sticky= "nswe")
    
            self.headers= ("id","Produk","Stok","Harga Grosir","Harga Eceran")
            self.sheet_demo.headers(self.headers)

            c.execute("SELECT * FROM StokDanHarga")
            h=len(c.fetchall())
            print(h)
            self.data =[[f"Row {r} Column {c}" for c in range(3)] for r in   range(h)]
            self.sheet_demo.data_reference(self.data)
            a=c.execute("SELECT * FROM StokDanHarga")
            j=0
            for row in a:
                # i= len(a)
                r=j   
                print(r,j) 
                self.sheet_demo.set_row_data(r, values = row)   
                j += 1
        


    app= demo()
    app.mainloop()  

root= tk.Tk()
root.title("combobox")
root.geometry("400x400")

buttn = ttk.Button(root, text='STOK DAN HARGA', command=open_window1)
buttn.grid(row=0, column=0)



root.mainloop()