Python 如何拉伸条目以适应tkinter中的屏幕?

Python 如何拉伸条目以适应tkinter中的屏幕?,python,tkinter,Python,Tkinter,我知道您可以使用label.pack(fill=x),但我需要使用网格。我四处搜索,发现根。GRIDYROWORDATION(0,权重=1)和根。GrIDY-CulnNealSt配置(0,权重=1),但是它们只是在屏幕中间将条目集中,并且我也需要改变大小。我是新手,所以非常感谢您的帮助 from tkinter import * import pyperclip root = Tk() def listify(userString, brackets=True, quotes=True):

我知道您可以使用
label.pack(fill=x)
,但我需要使用网格。我四处搜索,发现<代码>根。GRIDYROWORDATION(0,权重=1)和根。GrIDY-CulnNealSt配置(0,权重=1),但是它们只是在屏幕中间将条目集中,并且我也需要改变大小。我是新手,所以非常感谢您的帮助

from tkinter import *

import pyperclip

root = Tk()

def listify(userString, brackets=True, quotes=True):

    outputList = []
    outputString = ''

    if brackets == True:
        outputList.append('[')

    if quotes == True:
        outputList.append("\"")
    userString = str(userString)
    lastCharacter = ""

    for character in userString:

        if character == " " or character == '   ':

            if lastCharacter == " " or lastCharacter == '   ':
                pass

            elif lastCharacter != " " or lastCharacter != '   ':

                if quotes == True:
                    outputList.append("\"")

                outputList.append(', ')

                if quotes == True:
                    outputList.append("\"")

        else:
            outputList.append(character)

        lastCharacter = character

    if quotes == True:
        outputList.append("\"")
    if brackets == True:
        outputList.append("]")

    outputString = outputString.join(outputList)
    return(outputString)

def mainListify():

    outputLabel.destroy()
    pyperclip.copy(listify(userText.get(),bracketsVar.get(),quotesVar.get()))
    newLabel = Label(root, text = listify(userText.get(),bracketsVar.get(),quotesVar.get()))
    newLabel.grid()


userText = StringVar()
quotesVar = BooleanVar()
bracketsVar = BooleanVar()

quotesVar.set(True)
bracketsVar.set(True)

userEntry = Entry(root, textvariable=userText)
quotes = Checkbutton(root, text='Quotes', onvalue=True, offvalue=False, variable=quotesVar)
brackets = Checkbutton(root, text='Brackets', onvalue=True, offvalue=False, variable=bracketsVar)
startButton = Button(root, text='Start', command=mainListify)
outputLabel = Label(root, text='Output Will Show Here')


userEntry.grid(columnspan=2)
quotes.grid(row=1)
brackets.grid(row=1,column=1)
outputLabel.grid(row=3,column=1)
startButton.grid(row=2, column=0)

root.mainloop()

您需要使用
网格
粘性
参数,该参数定义了
如果生成的单元格大于小部件本身,如何展开小部件

下面是一个示例(删除您的代码):

从tkinter导入*
root=Tk()
userText=StringVar()
quotesVar=BooleanVar()
bracketsVar=BooleanVar()
quotesVar.set(真)
bracketsVar.set(真)
userEntry=Entry(根,textvariable=userText)
quotes=Checkbutton(根,text='quotes',onvalue=True,offvalue=False,variable=quotesVar)
方括号=复选按钮(根,text='方括号',onvalue=True,offvalue=False,variable=bracketsVar)
开始按钮=按钮(根,text='Start')
outputLabel=Label(根,text='Output Will Show Here')
grid(行=0,列=0,列span=2,sticky=“nsew”)
quotes.grid(行=1,列=0,sticky=“ew”,padx=10)#padx表示水平间距
括号.grid(行=1,列=1,sticky=“ew”,padx=10)
outputLabel.grid(行=3,列=0,列span=2)
网格(行=2,列=0,列span=2)
root.mainloop()
结果:


谢谢,但您知道如何使引号和括号按钮在条目拉伸时保持在条目下方的中心位置吗?现在它就在最左边。@NullAndVoid为此我需要你做一件事。“输出将在此处显示”是否可以居中?是的,实际上是居中的better@NullAndVoid编辑。看看它是否适合你的需要。是的!谢谢你的帮助!
from tkinter import *

root = Tk()

userText = StringVar()
quotesVar = BooleanVar()
bracketsVar = BooleanVar()

quotesVar.set(True)
bracketsVar.set(True)

userEntry = Entry(root, textvariable=userText)
quotes = Checkbutton(root, text='Quotes', onvalue=True, offvalue=False, variable=quotesVar)
brackets = Checkbutton(root, text='Brackets', onvalue=True, offvalue=False, variable=bracketsVar)
startButton = Button(root, text='Start')
outputLabel = Label(root, text='Output Will Show Here')

userEntry.grid(row=0, column=0, columnspan=2, sticky="nsew")
quotes.grid(row=1, column=0, sticky="ew", padx=10)# padx for horizontal spacing
brackets.grid(row=1, column=1, sticky="ew", padx=10)
outputLabel.grid(row=3, column=0, columnspan=2)
startButton.grid(row=2, column=0, columnspan=2)

root.mainloop()