如果文本改变了大小,并且小部件改变了大小

2024-01-31

第一次尝试 https://i.stack.imgur.com/kN2RQ.gif。 在这里您可以看到字体如何更改大小以及文本小部件如何更改大小。我需要文本小部件来保持其大小。我尝试在框架中创建一个文本小部件并制作frm.grid_propagate (False)。您在中看到的结果第二次尝试 https://i.stack.imgur.com/IN3Nb.gif。 在第二次尝试中,小部件现在只能减少,而不能增加。但是当字体大小很大时,文本会打印在文本小部件边框之外并且不可见

from tkinter import*
import tkinter as tk
def fontUp():
    global count
    if text.tag_ranges('sel'):
        text.tag_add('colortag_' + str(count), SEL_FIRST,SEL_LAST)
        text.tag_configure('colortag_' + str(count),font='Area 35')
        count+=1
    else:    
        text.configure(font='Area 30')

count=0    
root = tk.Tk()
root.geometry("800x800")

frm = tk.Frame(root, height = 300, width = 500)
frm.grid(row = 0, column = 0)
frm.grid_propagate(False)

text = tk.Text(frm, height = 20, width = 50)
text.grid(row = 0, column = 0)

btn = tk.Button(root, text="Font bigger", command = fontUp)
btn.grid(row = 2, column = 0)

这段代码和我的有同样的错误第二次尝试 https://i.stack.imgur.com/IN3Nb.gif.

当我们单击按钮大小时,文本会增大,小部件也会增大。但我有一个“fontUp”函数,它只增加选定的文本。该函数的工作原理如下:首先选择文本,然后单击按钮,文本会增加,但小部件不会增加,这正是我所需要的。如何让文本改变大小,而小部件不改变大小


对我来说,最好的解决方案是将小部件大小设置为 0 或 1,然后让几何管理使窗口增大或缩小以适合包含的框架。这是可行的,因为字体更改仅影响窗口的所需大小,而不影响实际大小,并且所需大小基于宽度和高度。实际大小由包含框架控制。

在下面的示例中我使用pack对于文本小部件。它适用于grid也是如此,但需要额外的几行代码来给出行和列的权重。由于文本小部件是包含框架中唯一的小部件,pack更容易使用。

frm = tk.Frame(root, height = 300, width = 500)
frm.grid(row = 0, column = 0)
frm.pack_propagate(False)

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

如果文本改变了大小,并且小部件改变了大小 的相关文章

随机推荐

  • 如何开始使用 svn:externals?

    我正在寻找有关使用 svn externals 的简洁且写得好的教程 我自己已经知道如何以基本方式使用它们 但我想要一篇好文章 在回答最近出现的此类问题时可以链接到 如何处理依赖于同一来源的多个项目 https stackoverflow
  • ORA-12899: 值对于列来说太大

    我以 feed 的形式从 erp 系统获取数据 特别是 feed 中的一列长度仅为 15 在目标表中也对应的列长度也是varchar2 15 但是当我尝试将相同内容加载到数据库中时 它显示错误 例如 ORA 12899 列 emp name
  • 仅当按下特定命令按钮时才根据需要验证输入

    我有 JSF 验证的具体用例 例如我有一个inputText field
  • 选择范围并复制/粘贴到记事本 - 即将完成

    经过大量的工作和测试 确实非常可悲 我终于成功地选择了一个范围工作表 然后将其复制 粘贴到记事本中 此后该文件将由另一个应用程序读取 不幸的是 该应用程序拒绝该文件 我无法调试原因 我收到的唯一消息是发生错误最后一行 令人惊讶的是 当我手动
  • 使用 matplotlib.pcolormesh() 将颜色设置为透明的正确方法?

    我想要低于一定水平的值 在这种情况下0 绘制为透明matplotlib pcolormesh 而且我似乎无法使用我找到的选项进行任何操作 我尝试过设置kwarg vmin 1 我尝试设置限制plt cm cmap set under alp
  • 数据重塑的 R 性能

    我正在尝试在 R 中重塑数据框 但使用推荐的方法似乎有问题 数据帧具有以下结构 ID DATE1 DATE2 VALTYPE VALUE abcd1233 2009 11 12 2009 12 23 TYPE1 123 45 VALTYPE
  • 将 int 60 转换为 60 分钟的时间值

    这看起来应该很简单 但我找不到我需要的时间格式 数据库中的值为 240 这意味着 240 分钟 我如何将其存储在 php 变量中 以便 php 知道这是分钟 这样我就可以在脚本中将其添加到HH MM value 我编辑了下面的代码以反映答案
  • 如何在 nw.js 中开始使用 angular2

    如何在 nw js 下获得 Angular 2 的工作 hello world 我使用本指南成功获得了一个可用的 Angular 2 应用程序 https angular io docs js latest quickstart html
  • 如何强制状态服务器丢弃所有会话?

    我有一个 asp net Web 应用程序 它使用状态服务器来存储其会话 当我们更改存储在会话中的某些内容的类型时 所有具有活动会话的用户都会出错 因为 旧会话 包含 旧类型 的实例 我认为解决这个问题的最简单方法是重新启动状态服务器 从而
  • jQuery .on keyup 和模糊仅触发 onload

    问题 这blur and keyup每个事件在 onload 时触发一次 并且仅在 onload 时触发 我怎样才能让它们正常工作 jQuery function myFunction text alert text input1 on k
  • 根据特定数组的长度对变量进行分组

    我在数据集中有一长串变量 其中包含多个time不同采样率的通道 例如time 1 time 2 TIME Time等等 还有多个其他变量取决于这些时间中的任何一个 我想列出包含 时间 的所有可能通道 工作区中不区分大小写的部分字符串搜索 并
  • 为什么 savefig 和plot 命令必须位于 IPython 笔记本中的同一单元格中?

    我试图从 IPython 笔记本中导出一些图 搜索我发现这个问题 https stackoverflow com questions 13642528 how to export figures to files from ipython
  • 检测用户是否正在滚动

    如何在 javascript 中检测用户是否正在滚动 这有效 window onscroll function e called when the window is scrolled edit 你说这是一个 TimeInterval 中的
  • webpack-dev-server 如何在不刷新页面的情况下重新加载 css

    当我更改 vue 文件和 css 文件中的样式时 我不希望页面刷新 并且希望样式自动更改 但现在当我更改样式时页面总是刷新 我正在使用 vue cli 生成 webpack 配置文件 as below webpack dev conf js
  • 使用 Meteor.js 进行抓取

    我可以使用meteor js 进行抓取吗 刚刚发现cheerio结合起来效果很好request 我可以将它们与流星一起使用吗 或者有类似的东西吗 你有一个可行的例子吗 当然 很难想象还有什么是流星做不到的 首先 您需要一些东西来处理远程 h
  • nuxt.js 文档未定义,pugin 出现问题

    我添加了插件 vue burger menu to my nuxt js项目 我有一个错误 document is not defined 我知道 这个插件仅适用于客户端 于是我在vue文档中找到了在此输入链接描述 https nuxtjs
  • 使用 ksoap2-android 时出现异常

    我有一个关于 ksoap2 的问题 我的问题是 该项目曾经运行良好 直到我不得不格式化我的电脑并再次设置它 我不记得我在应用程序中引用了哪个版本 但我尝试了很多版本 但问题仍然出现 04 05 13 56 18 289 E dalvikvm
  • 将不相关的存储库导入到另一个存储库分支

    我在 stackoverflow 上尝试了很多答案 但似乎没有一个能完全按照我想要的方式工作 基本上我有一个主存储库 我创建了一个分支 例如 功能 并且我需要添加另一个完全不相关的存储库作为此 功能 分支的文件夹 我还需要从导入存储库中获取
  • 双文件类型扩展:Sublime Text 3 中的正确语法突出显示

    我正在和一些人一起工作 scss liquid文件 它们总是以 HTML Liquid 的形式打开 无论我设置语法多少次 Update I tried 打开所有当前扩展名为选项 但不幸的是这会影响以下文件 js liquid and htm
  • 如果文本改变了大小,并且小部件改变了大小

    第一次尝试 https i stack imgur com kN2RQ gif 在这里您可以看到字体如何更改大小以及文本小部件如何更改大小 我需要文本小部件来保持其大小 我尝试在框架中创建一个文本小部件并制作frm grid propaga