微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从python中的自动创建行获取数据

如何解决如何从python中的自动创建行获取数据

我想从任何行或所有键入并包含文本的行中获取数据

就像this photo

我想在多行this photo

时抓取数据

如何从每一行(行再见)获取数据

我可以得到所有的行并将其放在列表或数据库中吗??

我可以获取所有行并将它们打印在一个文件中吗?

from tkinter import *
from tkinter.messageBox import *

class add_new_radio:
    def __init__(self,toplevel):
        self.toplevel = toplevel
        self.All_widgets()
        self.toplevel.mainloop()

    def All_widgets(self):
        self.med_name = StringVar()
        self.label_row_general = Intvar()
        self.label_row_general.set(0)
        self.med_ajouter(self.label_row_general.get())

    def ajouter_plus(self):
        self.add_btn.grid_forget()
        self.cancel_btn.grid_forget()
        self.confirme_btn.grid_forget()
        self.print_btn.grid_forget()
        self.nbr = self.label_row_general.get()+1
        self.label_row_general.set(self.nbr)
        self.med_ajouter(self.nbr)

    def med_ajouter(self,row_nbr):
        self.label_row = row_nbr
        Label(self.toplevel,text="Name").grid(
            row=self.label_row,column=0,padx=5,pady=5)
        Label(self.toplevel,text="Date").grid(
            row=self.label_row,column=2,text="From").grid(
            row=self.label_row,column=4,text="Qt/j").grid(row=self.label_row,column=6,pady=5)
        self.medicament_entry = Entry(self.toplevel,text=self.med_name)
        self.date_entry = Entry(self.toplevel)
        self.duree_entry = Entry(self.toplevel)
        self.qt_j_entry = Entry(self.toplevel)

        self.medicament_entry.grid(
            row=self.label_row,column=1,pady=5)
        self.date_entry.grid(row=self.label_row,column=3,pady=5)
        self.duree_entry.grid(row=self.label_row,column=5,pady=5)
        self.qt_j_entry.grid(row=self.label_row,column=7,pady=5)

        self.add_btn = Button(self.toplevel,text="Plus",command=self.ajouter_plus)
        self.add_btn.grid(row=self.label_row,column=8,pady=5,ipadx=15)

        self.cancel_btn = Button(self.toplevel,text="Annuler")
        self.confirme_btn = Button(
            self.toplevel,text="Ajouter")
        self.print_btn = Button(self.toplevel,text="Imprimer")

        self.cancel_btn.grid(row=self.label_row+1,ipadx=15)
        self.confirme_btn.grid(row=self.label_row+1,ipadx=15)
        self.print_btn.grid(row=self.label_row+1,ipadx=15)
if __name__ == '__main__':
     add_new_radio(Tk())

谢谢

解决方法

要从表中获取数据,您需要保留对条目小部件的引用。最好的方法是使用列表,您可以在 __init__ 函数中创建该列表:

def __init__(self,toplevel):
    self.toplevel = toplevel
    self.entry_list = []
    ...

然后在 med_adjouter 中,您可以将它们添加到列表中:

...
self.qt_j_entry = Entry(self.toplevel)

self.entry_list.append([self.medicament_entry,self.date_entry,self.duree_entry,self.qt_j_entry])

self.medicament_entry.grid(
...

然后当你想从他们那里获取值时,你可以通过列表并像这样获取它们:

def get_data(self):
    data = []
    for row in self.entry_list:
        row_values = []
        for col in row:
            row_values.append(col.get())
        data.append(row_values)
    print(data) #You can then use this list to do other things

然后可以使用 data 列表将数据放入数据库或其他任何您想用它做的事情。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。