Python 如何将滚动条连接到tkinter上的文本框?

Python 如何将滚动条连接到tkinter上的文本框?,python,tkinter,Python,Tkinter,我试图使用垂直滚动条显示文本框,但遇到了一些问题: 我无法使滚动条直接接触文本框的右侧(因此它们已连接) 滚动条似乎不会影响我的文本框 我看了一些解决办法,但似乎没有一个奏效。 这是我的密码: from tkinter import * writtenQ = Tk() writtenQ.title("Written Response Question") writtenQ.resizable(0,0) header = LabelFrame(writtenQ, bg=&q

我试图使用垂直滚动条显示文本框,但遇到了一些问题:

  • 我无法使滚动条直接接触文本框的右侧(因此它们已连接)
  • 滚动条似乎不会影响我的文本框
  • 我看了一些解决办法,但似乎没有一个奏效。 这是我的密码:

    from tkinter import *
    
    writtenQ = Tk()
    writtenQ.title("Written Response Question")
    writtenQ.resizable(0,0)
    
    header = LabelFrame(writtenQ, bg="white")
    content = LabelFrame(writtenQ, bg="white")
    
    header.columnconfigure(0, weight=1) # Forces column to expand to fill all available space
    homeButton=Button(content,width=50,height=50)
    try:
        homeIcon=PhotoImage(file="yes.png")
        homeButton.config(image=homeIcon)
        homeButton.image = homeIcon
    except TclError:
        print("Home")
    homeButton.grid(row=1, sticky="w", padx=15, pady=2)
    
    #the image of the question will be put here
    titleHeader = Label(content, text="Question Image here",pady=15, padx=20, bg="white", font=("Ariel",20, "bold"), anchor="w", relief="solid", borderwidth=1)
    titleHeader.grid(row=2, column=0, columnspan=3, padx=15, pady=5, ipadx=370, ipady=150)
    
    #this will allow the user to input their written response
    answerInput = Text(content, width = 60, borderwidth=5, font=("HelvLight", 18)) 
    answerInput.grid(row=3, column=0, ipady = 10, sticky="w", padx=(20,0), pady=20)
    answerScrollBar= Scrollbar(content, command=answerInput.yview, orient="vertical")
    answerScrollBar.grid(row=3, column=1, sticky="w")
    
    submitButton = Button(content, borderwidth=1, font=("Ariel", 22), text="Submit", bg="#12a8e3", fg="black", activebackground="#12a8e3", relief="solid")
    submitButton.grid(row=3, column=2, ipady=50, ipadx=70, sticky="nw", pady=20)
    
    header.grid(row=0, sticky='NSEW')
    content.grid(row=1, sticky='NSEW')
    
    

    你试过这个解决办法吗

    假设文本小部件称为文本。您的代码可能是(不包括窗口的设置):


    我已经从你的回答中挑出了我认为对你有用的东西。希望有帮助。记得在使用代码之前设置窗口…

    配置滚动条需要双向连接:滚动条需要调用小部件的
    yview
    xview
    方法,小部件需要调用滚动条的
    set
    方法

    通常,这是通过三个步骤完成的,如以下示例所示:

    answerInput = Text(...)
    answerScrollBar= Scrollbar(..., command=answerInput.yview)
    answerInput.configure(yscrollcommand=answerScrollBar.set)
    
    你忘记了最后一步


    与实际运行的滚动条无关,您希望能够看到滚动条。您需要对滚动条使用
    sticky=“ns”
    ,以便滚动条沿Y方向拉伸。否则它将只有几十个像素高

    answerScrollBar.grid(row=3, column=1, sticky="ns")
    

    为滚动条设置
    sticky=“nsw”
    pady=20
    。但是,最好将
    文本
    滚动条
    放在
    框架
    中。谢谢您修复了它。你知道如何设置文本框的大小吗?它似乎无限扩展,我试着把它放在一个固定大小的框架中,但它仍然会垂直扩展
    answerScrollBar.grid(row=3, column=1, sticky="ns")