如何解决如何并排放置不同大小的小部件?
我有以下小部件,它们定义为带有文本的滚动条:
from tkinter import ttk
from tkinter import *
# -------------
# set_up_output_scrollbar
def set_up_output_scrollbar():
output_scrollbar = Scrollbar(root)
output_scrollbar_text = Text(root,height=scrollbar_height,width=scrollbar_width)
output_scrollbar.config(command=output_scrollbar_text.yview)
return output_scrollbar,output_scrollbar_text
# -------------
# set_up_calculations_scrollbar
def set_up_calculation_scrollbar():
calculation_scrollbar = Scrollbar(root)
calculation_scrollbar_text = Text(root,height=calculation_scrollbar_height,width=calculation_scrollbar_width)
calculation_scrollbar.config(command=calculation_scrollbar_text.yview)
return calculation_scrollbar,calculation_scrollbar_text
设置示例:
# -------------------------------------------
# PROGRAMM SET UP
if __name__ == '__main__':
# ---------------------------
# main definition of gui
root = Tk()
root.title('Wetterderivate und Klima v_a0.0.1')
#icon_path = get_local_path()
#root.iconbitmap(icon_path + 'icon.ico') # icon
root.geometry("1920x1080")
root.resizable(width=False,height=False)
# ---------------------------
# call initial functions and set inital values
scrollbar_width = 75
scrollbar_height = 15
calculation_scrollbar_height = 25
calculation_scrollbar_width = 100
# -------------
# output_scrollbar
output_scrollbar,output_scrollbar_text = set_up_output_scrollbar()
output_scrollbar_text.grid(row=6,column=0,sticky='NS')
output_scrollbar.grid(row=6,column=1,sticky='NS')
# -------------
# calculation_scrollbar
calculation_scrollbar,calculation_scrollbar_text = set_up_calculation_scrollbar()
calculation_scrollbar_text.grid(row=1,column=4,sticky='NS')
calculation_scrollbar.grid(row=1,column=5,sticky='NS')
root.mainloop()
如何将它们彼此并排放置?在output_scrollbar
上方有许多按钮和菜单,因此当我放置calculation_scrollbar
时,其显示如下:
解决方法
您可以使用参数columnspan
和rowspan
来使小部件之一跨越几行和几列。在您的情况下,“文本”小部件和右侧的滚动条应跨越几行:
calculation_scrollbar.grid(row=1,rowspan=6,column=5,sticky='NS')
考虑到另一个滚动条位于第6行,至少我认为6行就足够了。只要给text-widget设置相同的行距,否则它会显得笨拙。
编辑:有时使用Frame-widgets组织窗口也是一个好主意。对于您的情况,我建议使用三个框架(左上,左下,右)。每个框架都有自己的网格。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。