通过单选按钮和过程传递变量

时间:2021-06-29 13:53:33

标签: python tkinter radio-button

我一直在编写代码来记录数据。我让它只使用输入框,现在我要回去添加像单选按钮和下拉框这样的想法,我盯着单选按钮。

    def addnew(gdpr,entry,entry1,entry2,entry3,entry4,entry5,entry6,entry7,entry8,entry9,entry10,count):
    fname = entry.get()
    sname = entry10.get()
    address = entry1.get()
    amount = entry2.get()
    phone = entry3.get()
    children = entry4.get()
    age = entry5.get()
    ref = entry6.get()
    gdpr = gdpr.get()
    if gdpr == 1:
        gdpr2 = "yes"
    elif gdpr == 2:
        gdpr2 = "no"
    date = entry8.get()
    extra = entry9.get()

    fname = fname.lower()
    sname = sname.lower()
    address = address.lower()
    amount = amount.lower()
    phone = phone.lower()
    children = children.lower()
    age = age.lower()
    ref = ref.lower()
    date = date.lower()
    extra = extra.lower()

    file3 = open("files.csv","a")
    file3.write("\n" + fname + "," + sname + "," + address + "," + amount + "," + phone + "," + children + "," + age + "," + ref + "," + gdpr2 + "," + date + "," + extra)
    file3.close()

    
    count = count+1
    entry.delete(0, "end")
    entry10.delete(0, "end")
    entry1.delete(0, "end")
    entry2.delete(0, "end")
    entry3.delete(0, "end")
    entry4.delete(0, "end")
    entry5.delete(0, "end")
    entry6.delete(0, "end")
    entry8.delete(0, "end")
    entry9.delete(0, "end")
class nav(tk.Tk):

    def __init__(self, *args, **kwargs):
        
        tk.Tk.__init__(self, *args, **kwargs)
        container = tk.Frame(self)

        container.pack(side="top", fill="both", expand = True)

        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)

        self.frames = {}

        for F in (StartPage, PageOne, PageTwo, PageThree):

            frame = F(container, self)
            self.frames[F] = frame

            frame.grid(row=0, column=0, sticky="nsew")

        self.show_frame(StartPage)

    def show_frame(self, cont):

        frame = self.frames[cont]
        frame.tkraise()


class StartPage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self,parent)

        canvas = tk.Canvas(self, height=Height, width=Width)
        canvas.pack()
        
        main = tk.Frame(self, bg='#00BFFF')
        main.place(relx=0,rely=0, relheight=1, relwidth=1)

        
        label = tk.Label(main, text="Hello Malcolm what would you like to do?", bg='#00BFFF')
        label.place(relx=0.3, rely=0, relwidth=0.45, relheight=0.20)

        button = tk.Button(main, text="Add someone new", bg='#90EE90', fg='black', command=lambda: controller.show_frame(PageOne))
        button.place(relx=0.3, rely=0.2, relwidth=0.45, relheight=0.10)

        button1 = tk.Button(main, text="Register a visit", bg='#90EE90', fg='black', command=lambda: controller.show_frame(PageTwo))
        button1.place(relx=0.3, rely=0.4, relwidth=0.45, relheight=0.10)

        button2 = tk.Button(main, text="View data", bg='#90EE90', fg='black', command=lambda: controller.show_frame(PageThree))
        button2.place(relx=0.3, rely=0.6, relwidth=0.45, relheight=0.10)

        button3 = tk.Button(main, text="End program", bg='#90EE90', fg='black', command=closed)
        button3.place(relx=0.3, rely=0.8, relwidth=0.45, relheight=0.10)

class PageOne(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        gdpr = tk.IntVar

        main2 = tk.Frame(self, bg='#00BFFF')
        main2.place(relx=0,rely=0, relheight=1, relwidth=1)
        
        label1 = tk.Label(main2, text="Add someone new", bg='#00BFFF')
        label1.place(relx=0.3, rely=0, relwidth=0.45, relheight=0.10)

        button = tk.Button(main2, text="Enter", bg='#90EE90', fg='black', command= lambda: addnew(entry,entry1,entry2,entry3,entry4,entry5,entry6,entry7,entry8,entry9,entry10,count))
        button.place(relx=0.425, rely=0.925, relwidth=0.15, relheight=0.05)

        label3 = tk.Label(main2, text="First name", bg='#00BFFF')
        label3.place(relx=0.1, rely=0.075, relwidth=0.15, relheight=0.1)

        label10 = tk.Label(main2, text="Surname", bg='#00BFFF')
        label10.place(relx=0.1, rely=0.15, relwidth=0.15, relheight=0.1)

        label4 = tk.Label(main2, text="Address", bg='#00BFFF')
        label4.place(relx=0.1, rely=0.225, relwidth=0.15, relheight=0.1)

        label5 = tk.Label(main2, text="Amount in house", bg='#00BFFF')
        label5.place(relx=0.1, rely=0.3, relwidth=0.15, relheight=0.1)

        label6 = tk.Label(main2, text="Phone number", bg='#00BFFF')
        label6.place(relx=0.1, rely=0.375, relwidth=0.15, relheight=0.1)

        label7 = tk.Label(main2, text="Children", bg='#00BFFF')
        label7.place(relx=0.1, rely=0.45, relwidth=0.15, relheight=0.1)

        label8 = tk.Label(main2, text="Age of children", bg='#00BFFF')
        label8.place(relx=0.1, rely=0.525, relwidth=0.15, relheight=0.1)

        label12 = tk.Label(main2, text="Referrer", bg='#00BFFF')
        label12.place(relx=0.1, rely=0.60, relwidth=0.15, relheight=0.1)

        label13 = tk.Label(main2, text="Have they done gdp?", bg='#00BFFF')
        label13.place(relx=0.1, rely=0.675, relwidth=0.20, relheight=0.1)

        label9 = tk.Label(main2, text="Date", bg='#00BFFF')
        label9.place(relx=0.1, rely=0.75, relwidth=0.15, relheight=0.1)


        label11 = tk.Label(main2, text="Extras", bg='#00BFFF')
        label11.place(relx=0.1, rely=0.825, relwidth=0.15, relheight=0.1)

        entry = tk.Entry(main2)
        entry.place(relx= 0.3, rely=0.1, relwidth=0.65, relheight=0.05)

        entry10 = tk.Entry(main2)
        entry10.place(relx= 0.3, rely=0.175, relwidth=0.65, relheight=0.05)
        

        entry1 = tk.Entry(main2)
        entry1.place(relx= 0.3, rely=0.25, relwidth=0.65, relheight=0.05)

        entry2 = tk.Entry(main2)
        entry2.place(relx= 0.3, rely=0.325, relwidth=0.65, relheight=0.05)

        entry3 = tk.Entry(main2)
        entry3.place(relx= 0.3, rely=0.4, relwidth=0.65, relheight=0.05)

        entry4 = tk.Entry(main2)
        entry4.place(relx= 0.3, rely=0.475, relwidth=0.65, relheight=0.05)

        entry5 = tk.Entry(main2)
        entry5.place(relx= 0.3, rely=0.55, relwidth=0.65, relheight=0.05)

        entry6 = tk.Entry(main2)
        entry6.place(relx= 0.3, rely=0.625, relwidth=0.65, relheight=0.05)

        entry7 = tk.Entry(main2)
        #entry7.place(relx= 0.3, rely=0.70, relwidth=0.65, relheight=0.05)
        rb1 = tk.Radiobutton(main2, text="Yes", variable=gdpr, value=1,bg='#00BFFF',activebackground='#00BFFF')
        rb1.place (relx= 0.3, rely=0.70, relwidth=0.30, relheight=0.05)

        rb2 = tk.Radiobutton(main2, text="no", variable=gdpr, value=2,bg='#00BFFF',activebackground='#00BFFF')
        rb2.place (relx= 0.6, rely=0.70, relwidth=0.30, relheight=0.05)
        
        entry8 = tk.Entry(main2)
        entry8.place(relx= 0.3, rely=0.775, relwidth=0.65, relheight=0.05)


        entry9 = tk.Entry(main2)
        entry9.place(relx= 0.3, rely=0.85, relwidth=0.65, relheight=0.05)

        
        buttonback = tk.Button(self, text="Back to Home", bg='#90EE90', fg='black', command=lambda: controller.show_frame(StartPage))
        buttonback.place(relx=0, rely=0.95, relwidth=0.15, relheight=0.05)

问题是当我运行这段代码时,它出现了一个类型错误,提示缺少一个参数,并且该参数可能是 self.这将表明这是一个传递错误,尽管我不知道该传递什么。请问有人可以帮忙吗?

0 个答案:

没有答案