猿问

tkinter scrolledtext.ScrolledText 没有 get 属性

我似乎无法将 ScrolledText Widget 的内容打印到控制台。


我已在 ScrolledText 小部件上运行帮助命令:


print(help(scrolledtext.ScrolledText))

这输出表明 .get 方法(用于获取 tk.Text Widgets 的内容)也存在于该小部件中。


 |  get(self, index1, index2=None)

 |      Return the text from INDEX1 to INDEX2 (not included).

那么为什么会出现这样的行:


print(myScrollTextWidget.get("1.0","end"))

结果出现此错误:


AttributeError: 'NoneType' object has no attribute 'get'

当按钮被按下时。


这是我正在使用的可运行代码片段:


import tkinter as tk

from tkinter import scrolledtext

#Declare Root

root = tk.Tk()

root.title("Scrolltext Widget")

tk.Label(root,text="My Scrolled Text Widget",font=("Times New Roman",25))\

    .grid(row=0,column=1)

#Define ScrollTextWidget

#wrap keyword used to wrap around text

myScrollTextWidget = scrolledtext.ScrolledText(root,wrap=tk.WORD,width=50,height=20,font=("Times New Roman",15))\

    .grid(row=1,column=1)

print(help(scrolledtext.ScrolledText))

def printToConsole():

    print(myScrollTextWidget.get("1.0","end"))

#Buttons

myButton = tk.Button(root,text="Print to console!",command=printToConsole).grid(row=2,column=1)



root.mainloop()


HUH函数
浏览 99回答 1
1回答

杨__羊羊

当您.pack()或.grid()在同一行中时,您不会向变量返回任何内容,因此该变量是None相反,.pack()或者.grid()在另一行中,如下所示:myScrollTextWidget = scrolledtext.ScrolledText(root,wrap=tk.WORD,width=50,height=20,font=("Times New Roman",15)) myScrollTextWidget.grid(row=1,column=1)一般来说,在同一行中进行网格化或打包是相当错误的。如果您想出于配置或其他目的访问对象,则应该避免使用它。
随时随地看视频慕课网APP

相关分类

Python
我要回答