在文本框中显示打印输出

2024-03-28 12:25:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我在tkinter中创建了一个GUI,当我单击Get时,它必须生成输出结果,在我的编码中使用Print语句显示输出结果,一旦我单击,它必须显示在一个文本框中以及同一个GUI中的滚动条。

我的代码:

import Tkinter as tk

class SampleApp(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.L1 = tk.Label(self, text="Enter the query")
        self.L1.pack()        
        self.entry = tk.Entry(self)
        self.button = tk.Button(self, text="Get", command=self.on_button)
        self.button.pack()
        self.entry.pack()

    def on_button(self):
        s1=(self.entry.get())

        with open("myxml.txt","rb")as f:
             row = f.readlines()
             for i, r in enumerate(row):
                if s1 in r:           
                    for x in range(i-3,i+4):
                        file1.write(row[x] + '\n')
                        s = row[x]
                        m = re.sub(r'<(\w+)\b[^>]*>([^<]*)</\1>', r'\1-\2', s)
                        print(re.sub(r'<[^<>]*>','', m))  #how to display it in textbox inside the same gui

app = SampleApp()
app.mainloop()

请帮助我在文本框中获取输出!提前谢谢!


Tags: inselfgetinitdefasguibutton
1条回答
网友
1楼 · 发布于 2024-03-28 12:25:41

您需要的小部件是tk.Text。您可以使用self中的以下行创建小部件。init

self.text = tk.Text(self)
self.text.pack()

然后可以使用insert method向其添加文本。文本小部件跟踪光标,您必须说明在何处插入文本。例如,要在框的末尾插入一些文本,可以使用:

self.text.insert(tk.END, "Some text here")

或者在你的程序中:

self.text.insert(tk.END, re.sub(r'<[^<>]*>','', m))

也可以使用tkinter.ScrolledText中的ScrolledText来代替文本小部件。这会给你免费的滚动条。导入它:

import tkinter.scrolledtext as tkst

并在初始化中实例化小部件:

self.text = tkst.ScrolledText(self)

相关问题 更多 >