python - 使用 tkinter,python 将输入数据显示到文本框中时出现问题

标签 python input tkinter interface tkinter-entry

我正在尝试创建一个程序,您可以在其中将数据直接输入到 tkinter 界面,然后在文本框中显示数据。但是,我收到以下错误

line 2122, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: unknown option "-textvariable"

from tkinter import *
from tkinter import ttk

def textMethod(*args):
    copytext = textinput1.get()
    textoutput1.set(copytext)

root = Tk()

root.title("Naynt Music Database")
frame = ttk.Frame(root,padding = "12 12 12 12")
frame.grid(column=0,row=1,sticky="N,S,E,W")
frame.columnconfigure(0,weight=1)
frame.rowconfigure(0,weight=1)

textinput1 = StringVar()
textoutput1 = StringVar()

text_entry = ttk.Entry(frame,width=20,textvariable = textinput1)
text_entry.grid(row=1,column=0,sticky=(W,E))
ttk.Button(frame,text="Add songname",command=textMethod).grid(column=1,row=1)

songListFrame = Frame(frame, bd=2, relief=SUNKEN)

frame.grid_rowconfigure(0, weight=1)
frame.grid_columnconfigure(0, weight=1)

xscrollbar = Scrollbar(frame, orient=HORIZONTAL)
xscrollbar.grid(row=3, column=0, sticky=E+W)

yscrollbar = Scrollbar(frame)
yscrollbar.grid(row=2, column=1, sticky=N+S)

songList = Text(frame, wrap=NONE, bd=0,
            xscrollcommand=xscrollbar.set,
            yscrollcommand=yscrollbar.set,
            textvariable=textoutput1)

songList.grid(row=2, column=0, sticky=N+S+E+W)

xscrollbar.config(command=songList.xview)
yscrollbar.config(command=songList.yview)

frame.pack()


root.mainloop()

最佳答案

出现问题是因为线路-

songList = Text(frame, wrap=NONE, bd=0,
        xscrollcommand=xscrollbar.set,
        yscrollcommand=yscrollbar.set,
        textvariable=textoutput1)

您不能为 Text 小部件设置 textvariable

您应该使用 Text.insert() 方法和 END 将您的歌曲插入到 Text 小部件的末尾。示例 -

from tkinter import *
from tkinter import ttk

def textMethod(*args):
    copytext = textinput1.get()
    songList.insert(END, copytext + '\n')

root = Tk()

root.title("Naynt Music Database")
frame = ttk.Frame(root,padding = "12 12 12 12")
frame.grid(column=0,row=1,sticky="N,S,E,W")
frame.columnconfigure(0,weight=1)
frame.rowconfigure(0,weight=1)

textinput1 = StringVar()
textoutput1 = StringVar()

text_entry = ttk.Entry(frame,width=20,textvariable = textinput1)
text_entry.grid(row=1,column=0,sticky=(W,E))
ttk.Button(frame,text="Add songname",command=textMethod).grid(column=1,row=1)

songListFrame = Frame(frame, bd=2, relief=SUNKEN)

frame.grid_rowconfigure(0, weight=1)
frame.grid_columnconfigure(0, weight=1)

xscrollbar = Scrollbar(frame, orient=HORIZONTAL)
xscrollbar.grid(row=3, column=0, sticky=E+W)

yscrollbar = Scrollbar(frame)
yscrollbar.grid(row=2, column=1, sticky=N+S)

songList = Text(frame, wrap=NONE, bd=0,
            xscrollcommand=xscrollbar.set,
            yscrollcommand=yscrollbar.set)

songList.grid(row=2, column=0, sticky=N+S+E+W)

xscrollbar.config(command=songList.xview)
yscrollbar.config(command=songList.yview)

frame.pack()


root.mainloop()

在该行中也添加了换行符,以便每首歌曲都换行。

关于python - 使用 tkinter,python 将输入数据显示到文本框中时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31979276/

相关文章:

c++ - 从从文本文件导入的不同线型创建变量

python - 如何更改标签内某些单词的颜色?

python - 发布项目沃尔玛合作伙伴 API Python

python os.path.getsize 不同于 len(f.read())

python - 如何从 fabric def 返回

python - 如何在 Python 中将字符串转换为 double 值?

angular - angular4 应用程序中输入的最小值和最大值

javascript - 使用函数删除输入数据

python - 在 Heroku 上导入 matplotlib 失败

python - 为什么此代码仅适用于 Something() 中的 *args?