python - Tkinter 初学者问题 - 如何匹配不同小部件之间的大小?
问题描述
问题作为标题。我发现很难理解为什么这两个小部件的大小不同,即使我指定了相同的参数。我显然做错了什么——或者我忘记了什么。任何帮助,将不胜感激!
from tkinter import ttk
import tkinter as tk
from tkinter import *
root = tk.Tk()
root.title("Tabs")
tabControl = ttk.Notebook(root)
tab1 = ttk.Frame(tabControl)
tab2 = ttk.Frame(tabControl)
tab3 = ttk.Frame(tabControl)
tabControl.add(tab1, text='tab1')
tabControl.add(tab2, text='tab2')
tabControl.add(tab3, text='tab3')
tabControl.pack(expand=1, fill="both")
canvas = Canvas(tab1, bg='white', width=100, height=100)
canvas.grid(column=0, row=5, columnspan=1, rowspan=1)
text_box = tk.Text(tab1, width=100, height=100, wrap=WORD)
text_box.grid(column=1, row=5, columnspan=1, rowspan=1)
root.mainloop()
解决方案
对于画布小部件,width
和height
以像素为单位指定。对于您的画布,您选择了 100x100像素。
对于文本小部件,width
和height
以多个字符指定。对于您的文本小部件,您选择了 100x100 个字符。
由于您使用的是grid
,因此使它们具有相同大小的最佳方法是将网格定义为具有统一的列宽。由于小部件位于同一行,因此它们将在垂直方向上被赋予相同的空间。然后,当您让小部件填充它们所在的空间时,它们将具有相同的大小。
tab1.grid_columnconfigure((0,1), uniform=1, weight=1)
tab1.grid_rowconfigure(5, weight=1)
canvas.grid(column=0, row=5, sticky="nsew")
text_box.grid(column=1, row=5, sticky="nsew")
推荐阅读
- xpath - 使用 Google 表格 importxml 函数从同义词库中获取单词的同义词
- mysql - MySql - 在选择查询中使用变量,而 where 条件又增加了一行
- tensorflow - 我如何知道内置的 TensorFlow 函数是否可微分?
- gensim - 有没有办法使用矩阵乘法从 gensim LDA 预训练模型中推断出未见文档的主题分布?
- angular - 角度 api 未执行
- elasticsearch - 在elasticsearch中,如何查询日期字段为任何时间的所有文档 Jan 1 2020 Pacific Time zone
- python - 如何关闭 mypy 检查没有 .py 文件的文件夹
- debugging - 我无法通过 Google Cloud Platform 中的防火墙规则打开某些端口
- android - 在 Firestore 中添加/覆盖数组类型的字段
- vim - Vim - 在命令行中更改光标