Tkinter:如何将文本插入属于Frame的文本小部件中?

时间:2020-10-30 17:41:48

标签: python tkinter

我需要帮助在Text的{​​{1}}小部件中插入文本。

Frame

我现在不知道如何访问该class Test_frame(Frame): def __init__(self): Frame.__init__(self) self.config(width = 700, height = 450) self.logs_frame = LabelFrame(self, height = 402, width = 348, text = 'Logs') self.logs_frame.grid(column = 1, row = 0, pady=10, sticky = N) self.logs_frame.grid_propagate(0) self.text_box = Text(self.logs_frame, width=40, pady=10, height=22) self.text_box.pack(side="left") self.scroll_y = Scrollbar(self.logs_frame, orient="vertical", command=self.text_box.yview) self.scroll_y.pack(side="left", expand=True, fill="y") self.text_box.configure(yscrollcommand=self.scroll_y.set) self.text_box.insert (?????.END, "Sample Text") 小部件。

TextTest_frame的一部分:

Notebook

2 个答案:

答案 0 :(得分:1)

我创建了一个最小的源,但是我想您已经解决了您的问题。

我添加了一个小按钮来添加文本,并在课堂外添加了一些文本。

无论如何,在这里:

import tkinter as Tk
import tkinter.ttk as ttk
from tkinter import *

def BumpText(textbox):
    textbox.insert(END,", MORE TEXT")


class Test_frame(Frame):
    def __init__(self):
        Frame.__init__(self)
        self.config(width = 700, height = 450)
        self.logs_frame = LabelFrame(self, height = 402, width = 348, text = 'Logs')
        self.logs_frame.grid(column = 1, row = 0, pady=10, sticky = N)
        self.logs_frame.grid_propagate(0)

        self.text_box = Text(self.logs_frame, width=40, pady=10, height=22)
        self.text_box.pack(side="left")

        self.scroll_y = Scrollbar(self.logs_frame, orient="vertical", command=self.text_box.yview)
        self.scroll_y.pack(side="left", expand=True, fill="y")
        self.text_box.configure(yscrollcommand=self.scroll_y.set)

        self.text_box.insert(END, "Sample Text")

        self.button = Button(self.logs_frame, text="Add\nText", command=lambda:self.text_box.insert(END, ", More Text"))
        self.button.pack(side="bottom")

class App(Tk):
    def __init__(self):
        Tk.__init__(self)
        self.my_notebook = ttk.Notebook(self)
        self.my_notebook.pack(pady = 5)
        self.frames = {}
        for F in (Test_frame,):  # , Final_flash_frame):
            frame = F()
            self.frames[F] = frame
            frame.pack(fill = 'both', expand = 1)
        self.my_notebook.add(self.frames[Test_frame], text = "Testing")

        for F,f in self.frames.items():
            try:
                f.text_box.insert(END," (Added by App)")
            except Exception as e:
                pass  # ignore frames without text_box 


if __name__ == "__main__":
    App().mainloop()

答案 1 :(得分:0)

好,所以显然只使用:

self.text_box.insert (END, "Sample Text")

有效

干杯, A