python - tkinter.scrolledtext.ScrolledText columnspan 问题
问题描述
下面是一段代码,以帮助显示我想要的。ScrolledText 小部件占据了宽度的 3/4,但我将其设置为占据 1/2,试图确定如何将两个控件从中间拆分。当我注释掉 ScrolledText 小部件并在其中添加一个具有相同网格信息的第二个测试列表框时,它会从中间分开。设置 ScrolledText 小部件有什么不同吗?
page.rowconfigure(1, weight=1)
page.columnconfigure(0, weight=1)
page.columnconfigure(6, weight=1)
lb_reports = Listbox(page, selectmode=SINGLE)
lb_reports.grid(row=1, column=0, columnspan=5, sticky=W + N + S + E, pady=5, padx=5)
# Following list box is here as a test, it does split down the middle of screen as expected.
# self.lb_reports1 = Listbox(page, selectmode=SINGLE)
# self.lb_reports1.grid(row=1, column=5, columnspan=5, sticky=W + N + S + E, pady=5, padx=5)
# this widget takes right 3/4 of screen instead of 1/2
st_test = tkinter.scrolledtext.ScrolledText(page)
st_test.grid(row=1, column=6, columnspan=5, sticky=W + N + S + E, pady=5, padx=5)
解决方案
给列赋予权重不会强制列具有相同的大小,但会强制它们以相同的速率增长。来自effbot:
weight=
用于在列之间分配额外空间的相对权重。权重为 2 的列的增长速度是权重为 1 的列的两倍。默认值为 0,这意味着该列根本不会增长。
然后从Text 小部件的文档(ScrolledText 所基于)您可以看到小部件的默认宽度为 80(字符,而不是像素!),而Listbox的默认宽度为 20(同样,字符)。
因此,虽然两列以相同的速度增长,但它们开始时的大小不同。
现在,如果您给两个小部件相同的宽度值,您可能会发现它们的宽度仍然不同。这可能是因为 Text 和 Listbox 小部件的字体不同。如果你给它们相同的宽度和相同的字体,它们应该具有相同的宽度,因此它们在增长时将保持相同的宽度:
from tkinter import *
from tkinter.scrolledtext import *
page = Tk()
page.rowconfigure(1, weight=1)
page.columnconfigure(0, weight=1)
page.columnconfigure(6, weight=1)
lb_reports = Listbox(page, selectmode=SINGLE, font=('Arial', 12), width=20)
lb_reports.grid(row=1, column=0, columnspan=5, sticky=W + N + S + E, pady=5, padx=5)
st_test = ScrolledText(page, font=('Arial', 12), width=20)
st_test.grid(row=1, column=6, columnspan=5, sticky=W + N + S + E, pady=5, padx=5)
page.mainloop()
推荐阅读
- rabbitmq - RabbitMQ 支持 LIFO 或基于时间的优先级队列
- php - 如何通过mysql语句从文件夹中删除图像
- python - 我如何使用 IBM Watson 翻译文档功能将翻译后的文件实际获取到我的计算机上
- fusionauth - FusionAuth 设置向导问题
- circleci - 在 CircleCI 中为不同环境设置环境变量
- redis - redis-sentinel 支持会结束吗?
- postgresql - 社交网络的架构设计建议
- ios - 从 Firebase 检索数据需要很长时间
- mysql - redmine:项目和联系人(公司)的sql关系是什么
- google-sheets - 查看者(每个链接)在打开文件时跳转到当前日期