Python 在网格管理器中调整大小
使用tkinter,我想创建一个界面,在左侧包含几个按钮,这将是一个相当静态的界面,并且与右侧的小部件对齐得相当好。 在右边,我希望在文本小部件之上有一个条目小部件,这两个小部件都会相应地调整大小(条目小部件仅在X轴上) 除了文本小部件不调整大小和条目小部件只调整大小以与文本小部件对齐外,此代码完成了大部分工作。在尝试对根进行列/行配置时,顶部框架会笨拙地调整大小 下面是此代码中tkinter接口的图片:Python 在网格管理器中调整大小,python,python-3.x,tkinter,widget,tkinter-layout,Python,Python 3.x,Tkinter,Widget,Tkinter Layout,使用tkinter,我想创建一个界面,在左侧包含几个按钮,这将是一个相当静态的界面,并且与右侧的小部件对齐得相当好。 在右边,我希望在文本小部件之上有一个条目小部件,这两个小部件都会相应地调整大小(条目小部件仅在X轴上) 除了文本小部件不调整大小和条目小部件只调整大小以与文本小部件对齐外,此代码完成了大部分工作。在尝试对根进行列/行配置时,顶部框架会笨拙地调整大小 下面是此代码中tkinter接口的图片: 如您所见,条目和文本小部件不会调整大小。我如何才能做到这一点,同时保持按钮静止,不移动任
如您所见,条目和文本小部件不会调整大小。我如何才能做到这一点,同时保持按钮静止,不移动任何东西(仅调整大小)?这对您有用吗?我用
#
注释更改了行,我想,我真的不记得我做了什么,我只是试着让它工作,但我不满意的一个问题是输入小部件与按钮的高度不同,我想你可以手动设置它的高度,但是
from tkinter import *
def main():
root = Tk()
root.grid_columnconfigure(1,weight=1) # the text and entry frames column
root.grid_rowconfigure(0,weight=1) # all frames row
buttonframe = Frame(root)
buttonframe.grid(row=0, column=0, sticky="nswe")
entry_text_frame = Frame(root)
entry_text_frame.grid(row=0, column=1, sticky="nswe")
entry_text_frame.grid_columnconfigure(0,weight=1) # the entry and text widgets column
entry_text_frame.grid_rowconfigure(1,weight=1) # the text widgets row
button1 = Button(buttonframe, text='one', width=8)
button1.grid(row=0, column=0, sticky='nswe')
button2 = Button(buttonframe, text='two', width=8)
button2.grid(row=1, column=0, sticky='nswe')
entry1 = Entry(entry_text_frame)
entry1.grid(row=0, column=0, sticky='nswe')
text1 = Text(entry_text_frame, highlightbackground='black', highlightthickness=1)
text1.grid(row=1, column=0, sticky='news')
root.geometry("300x400")
if __name__ == '__main__':
main()
这对你有用吗?我用
#
注释更改了行,我想,我真的不记得我做了什么,我只是试着让它工作,但我不满意的一个问题是输入小部件与按钮的高度不同,我想你可以手动设置它的高度,但是
from tkinter import *
def main():
root = Tk()
root.grid_columnconfigure(1,weight=1) # the text and entry frames column
root.grid_rowconfigure(0,weight=1) # all frames row
buttonframe = Frame(root)
buttonframe.grid(row=0, column=0, sticky="nswe")
entry_text_frame = Frame(root)
entry_text_frame.grid(row=0, column=1, sticky="nswe")
entry_text_frame.grid_columnconfigure(0,weight=1) # the entry and text widgets column
entry_text_frame.grid_rowconfigure(1,weight=1) # the text widgets row
button1 = Button(buttonframe, text='one', width=8)
button1.grid(row=0, column=0, sticky='nswe')
button2 = Button(buttonframe, text='two', width=8)
button2.grid(row=1, column=0, sticky='nswe')
entry1 = Entry(entry_text_frame)
entry1.grid(row=0, column=0, sticky='nswe')
text1 = Text(entry_text_frame, highlightbackground='black', highlightthickness=1)
text1.grid(row=1, column=0, sticky='news')
root.geometry("300x400")
if __name__ == '__main__':
main()
如果你解释一下你的不同做法,这个答案会更好。否则,我们必须逐行阅读,以了解重大变化是什么。另外,当您调用
geometry
命令时也没关系。@BryanOakley谢谢,您对堆栈上的tkinter的解释在过去几个月里确实帮助了我。你正在帮助很多人学习Python的GUI开发是的,我喜欢把Bryan看作是一个无所不知、永不睡觉的AI。如果你解释一下你做了什么,这个答案会更好。否则,我们必须逐行阅读,以了解重大变化是什么。另外,当您调用geometry
命令时也没关系。@BryanOakley谢谢,您对堆栈上的tkinter的解释在过去几个月里确实帮助了我。你正在帮助很多人学习Python的GUI开发是的,我喜欢把Bryan想象成一个无所不知的AI,它从不睡觉。