Python 3 Tkinter:ScrolledText无法识别textvariable
我正在创建一个程序,允许创业者输入他们公司的详细信息(如收入、利润、债务),控制台分析这些数字,并返回一个带有注释的等级和100分的分数 我在程序右侧的“总分”按钮下方制作了一个ScrolledText小部件 基本上,每次用户单击“总分!”,它都会显示100分,然后在ScrolledText框中显示分数和评论 但问题是它无法识别文本变量“FinalGrade”,错误显示:Python 3 Tkinter:ScrolledText无法识别textvariable,python,tkinter,Python,Tkinter,我正在创建一个程序,允许创业者输入他们公司的详细信息(如收入、利润、债务),控制台分析这些数字,并返回一个带有注释的等级和100分的分数 我在程序右侧的“总分”按钮下方制作了一个ScrolledText小部件 基本上,每次用户单击“总分!”,它都会显示100分,然后在ScrolledText框中显示分数和评论 但问题是它无法识别文本变量“FinalGrade”,错误显示: Traceback (most recent call last): File "/Users/s190528/Pych
Traceback (most recent call last):
File "/Users/s190528/PycharmProjects/CSP/Seeking Angel Investors GUI.py", line 433, in <module>
txtFinalGrade = ScrolledText(f1,font=('arial',16,'bold'),textvariable=FinalGrade,bd=2,insertwidth=4, width=17, height=21,bg='steel blue', relief=FLAT).place(x=1280,y=180)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/scrolledtext.py", line 26, in __init__
Text.__init__(self, self.frame, **kw)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/__init__.py", line 2947, in __init__
Widget.__init__(self, master, 'text', cnf, kw)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/__init__.py", line 2139, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: unknown option "-textvariable"
回溯(最近一次呼叫最后一次):
文件“/Users/s190528/PycharmProjects/CSP/Seeking angle Investors GUI.py”,第433行,在
txtFinalGrade=ScrolledText(f1,字体=('arial',16,'bold'),textvariable=FinalGrade,bd=2,insertwidth=4,width=17,height=21,bg='steel blue',relief=FLAT)。放置(x=1280,y=180)
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/scrolledtext.py”,第26行,在__
Text.\uuuu init\uuuuu(self,self.frame,**千瓦)
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/_init__.py”,第2947行,在_init中__
小部件。_u初始化(self,master,'text',cnf,kw)
文件“/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/_init__.py”,第2139行,在_init中__
(widgetName,self._w)+额外+自选项(cnf))
_tkinter.TclError:未知选项“-textvariable”
因为代码太长,无法粘贴到这里,所以我想将链接附加到它,以便您可以复制并粘贴到python中。谢谢
Scrolled文本是一个文本小部件,而不是条目小部件。条目小部件是具有变量绑定的小部件,因为它们只显示字符串,因此可以绑定到简单变量。文本小部件可以包含文本、图像和其他小部件以及格式等,并在其下方使用树状数据结构。
textvariable
不适用于ScrolledText
,因此您需要手动读取/写入它:
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
root = tk.Tk()
# Make ScrolledText
txtFinalGrade = ScrolledText(root)
txtFinalGrade.pack()
# Add text to ScrolledText
txtFinalGrade.insert('1.0', 'hello world')
# Get text from ScrolledText
from_scrolledtext = txtFinalGrade.get('1.0', 'end')
print('Text inside ScrolledText is: ', from_scrolledtext)
root.mainloop()
您认为
ScrolledText
不接受textvariable
是正确的。您只需使用get
方法检索文本,并使用insert
方法向其中添加文本。根据StackOverflow。首先,如果链接变得不可访问,那么问题就变得毫无用处,网站质量也会受到影响。也请阅读-你需要平息代码,只包括必要的部分来回答你的具体问题。用户不需要浏览不必要的代码,也不需要在其他地方浏览代码。帮助我们,帮助你。吸引志愿者花时间回答你的问题。我编辑了一个完整的工作示例,解决了这个问题txtFinalGrade
被设置为调用place(x=1280,y=180)
的输出,这是None
(而不是ScrolledText
)的输出。@user8244818:ScrolledText类是从文本类派生的。因此,您获得了tkinter文本小部件的所有功能,它恰好允许多行文本编辑。您可以使用它制作文本编辑器。请看,我刚刚编辑了我以前的评论,但问题是您将txtFinalGrade
设置为place
的输出,而不是ScrolledText
。FWIW、0.0
和1.0
是不正确的文本小部件索引。索引是字符串,第一个字符的索引是“1.0”
@user8244818您是否更改了txtFinalGrade
的定义(因此方法place
不会在同一行中调用)?这是你犯错误的最明显的原因。不要粗鲁,但我不是在为你做事。如果你付出真诚的努力,我当然愿意帮助你。