在以下代码中获取“Typerror:Text object is not callable in tkinter”

2024-05-26 14:21:39 发布

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

我正在创建一个文本编辑器并获得:

Typerror: Text object is not callable .

此代码显示一个滚动条,用户可以在其中滚动文本编辑器

import tkinter as tk

class PyText:
    def __init__(self, master):
        master.title("Untitled Text")
        master.geometry("1200x700")      
        self.textarea = tk.Text(master)
        self.scroll = tk.Scrollbar(master, command =self.textarea.yview)
        self.textarea(yscrollcommand =self.scroll.set)      
        self.textarea.pack(side=tk.LEFT)
        self.scroll.pack(side =tk.RIGHT)

if __name__ == "__main__":
    master = tk.Tk()    
    pt = PyText(master)

    master.mainloop()

这是错误:

Traceback (most recent call last):
  File "editor.py", line 15, in <module>
    pt = PyText(master)
  File "editor.py", line 9, in __init__
    self.textarea(yscrollcommand = self.scroll.set)
TypeError: 'Text' object is not callable

它应该显示滚动条,但它显示错误。你知道吗


Tags: textselfmasterobjectinitisnottk
1条回答
网友
1楼 · 发布于 2024-05-26 14:21:39

Set the Text widget's yscrollcommand option to the Scrollbar's set method.

txt['yscrollcommand'] = scrollb.set

而不是:

self.textarea(yscrollcommand = self.scroll.set)

用途:

self.textarea['yscrollcommand'] = self.scroll.set

或:

import tkinter as tk
from tkinter import *

class PyText():
    def __init__(self, master):
        master.title("Untitled Text")
        master.geometry("1200x700")
        self.textarea = tk.Text(master)
        self.textarea.grid(row=0, column=0, sticky="nsew", padx=2, pady=2)
        self.scroll = tk.Scrollbar(master, command =self.textarea.yview)
        self.scroll.grid(row=0, column=1, sticky='nsew')
        self.textarea['yscrollcommand'] = self.scroll.set

if __name__ == "__main__":
    root = tk.Tk()
    pt = PyText(root)
    root.mainloop()

输出:

enter image description here

相关问题 更多 >

    热门问题