将.pack()
与我的ScrolledText
小部件一起用于tkinter时,会出现一个带有滚动条的文本框的正确框。但是,当我将其切换为使用.grid()
时,它不再出现在窗口中。刚走了。
以下是我的代码的适用部分:
import tkinter as tk
import tkinter.scrolledtext as tkst
import tkinter.font as tkFont
import tkinter.ttk as ttk
class Application(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
# self.grid()
self.createWidgets()
def createWidgets(self):
self.logArea = tkst.ScrolledText(self,
wrap = tk.WORD,
width = 20,
height = 8,
state="disabled",
name="logArea"
)
self.logArea.grid(padx=10, pady=10,row=1, sticky=tk.W)
root = tk.Tk()
app = Application(master=root)
app.mainloop()
我在第1行有一个Treeview小部件显示正常,只是由于某种原因,这个ScrolledText小部件根本没有显示,但在我之前只使用pack()时工作正常。
知道出了什么问题吗?
修改:我在 init 中添加了self.master = master
,然后在我的ScrolledText初始化中使用self.master
而不是self
。我不确定为什么这解决了这个问题,很高兴知道为什么要修复它。
答案 0 :(得分:1)
这个修订版,添加了类语句,网格化到根窗口的应用程序框架,以及未禁用的文本框,可以正常工作。
import tkinter as tk
import tkinter.scrolledtext as tkst
import tkinter.font as tkFont
import tkinter.ttk as ttk
class Application(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.grid()
self.createWidgets()
def createWidgets(self):
self.logArea = tkst.ScrolledText(self,
wrap = tk.WORD,
width = 20,
height = 8,
#state="disabled",
name="logArea"
)
self.logArea.grid(padx=10, pady=10,row=1, sticky=tk.W)
self.logArea.insert('1.0', 'test insertion')
root = tk.Tk()
app = Application(root)
app.mainloop()