Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 写入一个输入字段最终会写入所有实例_Python_User Interface_Tkinter_Tkinter Entry - Fatal编程技术网

Python 写入一个输入字段最终会写入所有实例

Python 写入一个输入字段最终会写入所有实例,python,user-interface,tkinter,tkinter-entry,Python,User Interface,Tkinter,Tkinter Entry,我预见到会有重复的代码,所以我尝试将其稍微模块化。 这将是行中的输入/输入、提交/按钮、清除/按钮和下面的显示/文本 这是我目前的代码: import tkinter as tk from pprint import pprint class MainApp(tk.Frame): def __init__(self, master): super().__init__(master) self.frame = AddConsole(self)

我预见到会有重复的代码,所以我尝试将其稍微模块化。
这将是行中的输入/输入、提交/按钮、清除/按钮和下面的显示/文本

这是我目前的代码:

import tkinter as tk
from pprint import pprint

class MainApp(tk.Frame):
    def __init__(self, master):
        super().__init__(master)
    
        self.frame = AddConsole(self)
        self.frame.grid(row=0, column=1, sticky="nsew")

        self.frame2 = AddConsole(self)
        self.frame2.grid(row=0, column=2, sticky="nsew")

        self.frame3 = AddConsole(self)
        self.frame3.grid(row=0, column=3, sticky="nsew")

class AddConsole(tk.Frame):
    def __init__(self, master):
        super().__init__(master)

        self.top_frame = tk.Frame(self)
        self.bottomframe = tk.Frame(self)        

        self.top_frame.pack()
        self.bottomframe.pack( side = 'bottom' )
        
        self.stuff_entry = tk.Entry(self.top_frame, text="Red", fg="blue")
        self.stuff_entry.pack(side = 'left')

        self.submit_button = tk.Button(self.top_frame, text="Submit", fg="green", command=self.submit)
        self.submit_button.pack(side = 'left' )

        self.clear_button = tk.Button(self.top_frame, text="Clear", fg="blue", command=self.clear)
        self.clear_button.pack(side = 'left' )

        self.added_stuff = tk.Text(self.bottomframe, fg="black")
        self.added_stuff.pack(side = 'bottom')

    def submit(self):        
        self.added_stuff.insert("0.0",self.stuff_entry.get())
        self.stuff_entry.delete(0, tk.END)

    def clear(self):
        self.added_stuff.delete("1.0", tk.END)

if __name__ == "__main__":
    root = tk.Tk()
    mainAppObject = MainApp(root)
    mainAppObject.pack()
    root.mainloop()
我可以在下面的字段中输入字符串数据并将其清除,但在键入时和单击之前,提交文本显示为同时在所有三个输入字段中键入,而不是仅在选定的字段中键入

我的代码有什么问题,如何修复


谢谢

一个
条目
没有
text=
选项,就像您试图在这里设置为“红色”一样。我猜这被解释为
textvariable=
选项的缩写:您是说所有三个条目都应该将其内容存储在名为
Red
的Tcl变量中,因此它们都必须显示相同的内容。是的,就是这样。我复制并修改了另一个小部件的一行,它有文本字段,只是让它认为它不会做太多。谢谢