tkinter 使用主窗口调整框架和内容的大小

2024-01-01

我正在尝试弄清楚如何控制包含框架的窗口的大小调整。在代码中,我在顶部有三个按钮,它们应该保持在原来的位置。

当我拖动窗口将其展开时,我希望框架及其包含的文本框随主窗口一起展开。我读过columnconfigure and rowconfigure可以使用,但不知道如何实现。

from tkinter import *
from tkinter import scrolledtext

master_window = Tk()

# Create the buttons
btn_Image = Button(master_window, text='Image')
btn_Image.grid(row=1, column=1, padx=(10), pady=10, sticky=E + W)

btn_File = Button(master_window, text='File')
btn_File.grid(row=1, column=2, padx=(10), pady=10, sticky=E + W)

btn_Folder = Button(master_window, text='Folder')
btn_Folder.grid(row=1, column=3, padx=(10), pady=10, sticky=E + W)

# Group1 Frame ----------------------------------------------------
group1 = LabelFrame(master_window, text="Text Box", padx=5, pady=5)
group1.grid(row=2, column=1, columnspan=3, padx=10, pady=10, sticky=E+W+N+S)

# Create the textbox
txtbox = scrolledtext.ScrolledText(group1, width=40, height=10)
txtbox.grid(row=1, column=1,  columnspan=3, sticky=E+W+N+S)

mainloop()

的行号和列号grid()布局管理器从 0 开始,而不是从 1 开始(不过,将元素开始放置在您想要的任何位置并没有什么问题,我只是提到这一点,因为您的代码给我的印象是您认为单元格从 1 开始,而不是从 0 开始)。因为我不明白为什么开始将小部件放置在row=1 and column=1,在下面的解决方案中,我开始放置在 0 索引处。

我建议您为问题中的 3 个按钮创建一个不同的容器 -parent widget-(让我们说一个tkinter.Frame()).

这是代码:

from tkinter import *
from tkinter import scrolledtext

master_window = Tk()

# Parent widget for the buttons
buttons_frame = Frame(master_window)
buttons_frame.grid(row=0, column=0, sticky=W+E)    

btn_Image = Button(buttons_frame, text='Image')
btn_Image.grid(row=0, column=0, padx=(10), pady=10)

btn_File = Button(buttons_frame, text='File')
btn_File.grid(row=0, column=1, padx=(10), pady=10)

btn_Folder = Button(buttons_frame, text='Folder')
btn_Folder.grid(row=0, column=2, padx=(10), pady=10)

# Group1 Frame ----------------------------------------------------
group1 = LabelFrame(master_window, text="Text Box", padx=5, pady=5)
group1.grid(row=1, column=0, columnspan=3, padx=10, pady=10, sticky=E+W+N+S)

master_window.columnconfigure(0, weight=1)
master_window.rowconfigure(1, weight=1)

group1.rowconfigure(0, weight=1)
group1.columnconfigure(0, weight=1)

# Create the textbox
txtbox = scrolledtext.ScrolledText(group1, width=40, height=10)
txtbox.grid(row=0, column=0,   sticky=E+W+N+S)

mainloop()

Demo:

未拉伸时:

平均拉伸:

最大拉伸后:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tkinter 使用主窗口调整框架和内容的大小 的相关文章

  • python 中的并行处理

    在 python 2 7 中进行并行处理的简单代码是什么 我在网上找到的所有示例都很复杂 并且包含不必要的代码 我该如何做一个简单的强力整数分解程序 在每个核心 4 上分解 1 个整数 我真正的程序可能只需要2个核心 并且需要共享信息 我知
  • opencv水印周围的轮廓

    我想在图像中的水印周围画一个框 我已经提取了水印并找到了轮廓 但是 不会在水印周围绘制轮廓 轮廓是在我的整个图像上绘制的 请帮我提供正确的代码 轮廓坐标的输出为 array 0 0 0 634 450 634 450 0 dtype int
  • 用缺失的日期填充其他列 Nan Pandas DataFrame

    我实际上是从几个 Excel 文件中提取数据来监控我的每日卡路里摄入量 我设法使用列表理解来生成日期 我尝试使用合并或连接 但它不起作用 ValueError 您正在尝试合并对象和 float64 列 date list 2021 05 2
  • 如何在Python中同时运行两只乌龟?

    我试图让两只乌龟一起移动 而不是一只接着另一只移动 例如 a turtle Turtle b turtle Turtle a forward 100 b forward 100 但这只能让他们一前一后地移动 有没有办法让它们同时移动 有没有
  • 如果未引发异常,则通过 Python 单元测试

    在Python中unittest框架 是否有一种方法可以在未引发异常的情况下通过单元测试 否则会因 AssertRaise 而失败 如果我正确理解你的问题 你could做这样的事情 def test does not raise on va
  • Pandas:如果单元格包含特定文本则删除行

    pandas 中的这段代码不起作用 如果该列包含提供的任何文本 数字 我希望它删除该行 目前 我只能在单元格与我的代码中传递的确切文本匹配时才能使其工作 因为它只删除显示 Fin 的单元格不是金融或金融 df2 df df Team Fin
  • 在没有模型的情况下将自定义页面添加到 django admin

    我正在尝试在没有模型关联的情况下向管理员添加自定义页面 这就是我迄今为止所取得的成就 class MyCustomAdmin AdminSite def get urls self from django conf urls import
  • 搜索多个字段

    我想我没有正确理解 django haystack 我有一个包含多个字段的数据模型 我希望搜索其中两个字段 class UserProfile models Model user models ForeignKey User unique
  • Django send_mail SMTPSenderRefused 530 与 gmail

    一段时间以来 我一直在尝试使用 Django 从我正在开发的网站接收电子邮件 现在 我还没有部署它 并且我正在使用Django开发服务器 我不知道这是否会影响它 这是我的 settings py 配置 EMAIL BACKEND djang
  • 小组芹菜链任务

    shared task def process record x return 1 2 4 4 5 6 shared task def add pro id return pro id 10 shared task def dmap it
  • 使用Python计算目录的大小?

    在我重新发明这个特殊的轮子之前 有没有人有一个很好的例程来使用 Python 计算目录的大小 如果例程能够很好地以 Mb Gb 等格式格式化大小 那就太好了 这会遍历所有子目录 总结文件大小 import os def get size s
  • Matplotlib 中 x 轴标签的频率和旋转

    我在下面编写了一个简单的脚本来使用 matplotlib 生成图形 我想将 x tick 频率从每月增加到每周并轮换标签 我不知道从哪里开始 x 轴频率 我的旋转线产生错误 TypeError set xticks got an unexp
  • 如何在 pandas 中使用 read_fwf 跳过空行?

    I use pandas read fwf http pandas pydata org pandas docs stable generated pandas read fwf htmlPython pandas 0 19 2 中的函数读
  • python中的[][](双方括号运算符)运算符是什么?

    我是 python 新手 我一直在寻找分配变量时进行三元运算的正确方法 我发现有人在堆栈溢出上发表了一个帖子 提出了这样的建议 var smaller bigger 7 gt 1 其中左边的值为 False 右边的值为 True 我运行它并
  • 连接mysql和python.3

    我是 django 的新手 使用 django 1 5 和 python 3 3 有没有办法在 python 3 3 上安装 mysqlDB 或 有其他方法可以连接它们吗 PyMySQL https github com petehunt
  • SocketIO + Flask 检测断开连接

    我在这里有一个不同的问题 但意识到它可以简化为 如何检测客户端何时从页面断开连接 关闭其页面或单击链接 换句话说 套接字连接关闭 我想制作一个带有更新用户列表的聊天应用程序 并且我在 Python 上使用 Flask 当用户连接时 浏览器发
  • 在系统托盘中隐藏 tkinter 窗口 [重复]

    这个问题在这里已经有答案了 我正在制作一个程序来提醒我朋友的生日 这样我就不会忘记祝福他们 为此 我制作了两个 tkinter 窗口 1 First one is for entering name and birth date 2 Sec
  • 如何根据第一列创建新列,同时考虑Python Pandas中字母和列表的大小? [复制]

    这个问题在这里已经有答案了 我在 Python Pandas 中有 DataFrame 如下所示 col1 John Simon prd agc Ann White BeN and Ann bad list Ben Wayne 我需要这样做
  • TKinter 中的禁用/启用按钮

    我正在尝试制作一个像开关一样的按钮 所以如果我单击禁用按钮 它将禁用 按钮 有效 如果我再次按下它 它将再次启用它 我尝试了 if else 之类的东西 但没有成功 这是一个例子 from tkinter import fenster Tk
  • 将上下文管理器的动态可迭代链接到单个 with 语句

    我有一堆想要链接的上下文管理器 第一眼看上去 contextlib nested看起来是一个合适的解决方案 但是 此方法在文档中被标记为已弃用 该文档还指出最新的with声明直接允许这样做 自 2 7 版起已弃用 with 语句现在支持此

随机推荐

  • 我们如何以 DRY 方式将 Rails 路线与 AngularJS 一起使用?

    首先 我要对我蹩脚的英语和损坏的代码表示抱歉 这里的很多单词都来自谷歌翻译 所以 我担心我无法说清楚 所以 我粘贴所有代码 在轨道上设置路线非常简单 但是 当我们想将其转换为 angurjs 时 它会变得有点冗长 对于此类工作是否有任何 最
  • ECMAScript 6 与 ECMAScript 5 相比什么是块作用域函数 [重复]

    这个问题在这里已经有答案了 ECMAScript 6 中的块作用域函数是什么 谁能帮助我理解块作用域函数与 ECMAScript 5 相比的主要区别 The new let and constES2015 又名 ES6 与尊者相比有四个主要
  • 在扩展类本身内部使用扩展方法

    假设我有一个界面 如下所示 public interface ILoggable void Log Func
  • 从字符串中删除所有出现的 char

    我可以用这个 String str TextX Xto modifyX str str replace X that does not work because there is no such character 有没有办法删除所有出现的
  • 未为 DI/IoC 设置 StructureMap 和对象

    我有一种情况 我创建了一个工厂方法来创建一个对象 但是 该对象具有需要在创建对象之前执行的样板代码 修复这部分设计超出了这个问题的范围 此外 当创建对象时 屏幕上的状态显示也会更新 这要求在创建此对象之前先实例化此状态显示并使其可见 并且应
  • R自参考

    在 R 中 我发现自己经常做这样的事情 adataframe adataframe col something lt adataframe adataframe col something 1 这种方式有点漫长而且乏味 有什么办法适合我吗引
  • 在 tizen studio 中使用证书配置文件签署应用程序包

    如何在 Tizen studio 中使用证书配置文件签署应用程序包 This https developer tizen org development tizen studio web tools managing projects ce
  • 支持 ASP.NET MVC 2.0 的嵌套模型和类验证

    我正在尝试使用 System ComponentModel DataAnnotations 属性来验证包含具有验证规则的其他对象的模型 希望默认的 MVC 实现就足够了 var obj js Deserialize json objectI
  • “简单来说”SOA 是什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • 在group_by操作之后,dplyr如何为每个组生成数据帧?

    dplyr 包在流式数据处理方面的流畅性让我感到非常震惊 最近我急于解决一个问题 为每个组ID生成一个新的数据帧 并将这些小数据帧组合成最终的更大的数据帧 一个玩具示例 input data frame gt group by gid gt
  • 如何重构多个相似的 Linq-To-Sql 查询?

    假设我有以下两个要重构的 Linq To SQL 查询 var someValue1 0 var someValue2 0 var query1 db TableAs Where a gt a TableBs Count gt someVa
  • 使用 with() 与调用向量相比有哪些优点?

    我很好奇使用是否有任何优点with 而不是调用矢量名称 除了使用更少的击键之外 例如 是with d x1 总是等价于d x1 where d is structure list x1 c 1 96300839219158 1 779947
  • 有人知道如何在 Android 中使用 PagerTitleStrip

    我决定使用一个ViewPager在我的应用程序中 一切正常 我知道我想使用PagerTitleStrip in my ViewPager 但我没有找到任何有关如何做到这一点的信息 我在这门课上发现的唯一一页 原文如此 是http devel
  • 重新排列列表中的项目,使得没有两个相邻项目是相同的[重复]

    这个问题在这里已经有答案了 我们怎样才能最有效地做到这一点 给定一个包含重复项目的列表 任务是重新排列列表中的项目 以便没有两个相邻项目是相同的 Input 1 1 1 2 3 Output 1 2 1 3 1 Input 1 1 1 2
  • Seaborn tsplot 不能很好地在 x 轴上显示日期时间

    下面我有以下脚本 它创建了一个简单的时间序列图 matplotlib inline import datetime import pandas as pd import seaborn as sns import matplotlib py
  • 如何从 Pharo 中的调试器复制堆栈跟踪?

    如何从 Pharo 中的调试器复制堆栈跟踪 我知道图像附近有 Debug log 文件 但我太懒了 无法从 Pharo 导航到文件系统 找到文件夹 并浏览一个巨大的文本文件 如果前面有堆栈跟踪 我的 我知道一个方法 但不是最好的 当您在调试
  • 编译器可以优化对常量参数的引用到常量值吗?

    考虑以下功能 void func const char input do something 显然 参数为常量值是有意义的 而不是 关于 char 类型大小的常量引用 现在编译器可以将其优化为常量 值 以便它与以下相同 void func
  • 在 C++ 中向 Float/Double 类型添加 0

    我听说像 0 1 0 2 这样的浮点运算可能会由于内部使用二进制浮点而产生像 0 30000000000000004 这样的舍入误差 但是 如果我在 C 中向任何浮点数添加 0 是否能保证产生相同的值而没有任何舍入误差 我不知道浮点运算是如
  • 轻量级、便携式 C++ 光纤,MIT 许可证

    我想获得一个具有 MIT 许可证 或更宽松 的轻量级 便携式光纤库 Boost Coroutine 不符合资格 不是轻量级 Portable Coroutine Library 和 Kent C CSP 均为 GPL 也不符合资格 编辑 你
  • tkinter 使用主窗口调整框架和内容的大小

    我正在尝试弄清楚如何控制包含框架的窗口的大小调整 在代码中 我在顶部有三个按钮 它们应该保持在原来的位置 当我拖动窗口将其展开时 我希望框架及其包含的文本框随主窗口一起展开 我读过columnconfigure and rowconfigu