首页 > 编程问答 >Tkinter 的 Entry 小部件中的“额外填充”是什么?

Tkinter 的 Entry 小部件中的“额外填充”是什么?

时间:2024-07-27 08:40:24浏览次数:13  
标签:python tkinter tkinter-entry

采取这个简单的代码:

import os
import tkinter as tk

root_window = tk.Tk()
root_window.geometry("200x200")

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

foo = tk.Canvas(root_window, bg="grey", width=10, height=10)
bar = tk.Canvas(root_window, bg="light grey", width=10, height=10)

foo.grid(row=0, column=0, sticky="nsew")
bar.grid(row=0, column=1, sticky="nsew")

root_window.mainloop()

结果行为是完全正常和预期的: 屏幕被分成两个相等的边

但是如果你改变 foo 到一个Entry小部件(并从网格中删除 sticky="nsew" ):

foo = tk.Entry(root_window, width=10) # same width
foo.grid(row=0, column=0)

然后条目小部件似乎在两侧都不知从何而来有了某种“填充”: 条目小部件似乎有额外的空间

我以为它有一个默认值 padx ,但即使在尝试 padx=(0,0) 之后,什么也没有发生。

它也只发生在它的两侧(左右),顶部和底部工作正常。

即使你在网格方法上使用 sticky="nsew" ,| ||结果还有额外的空格 我缺少什么吗?我可以删除这个“额外的填充”吗?

PS:我尝试使用 sintax 使图像出现在帖子上,而不是指向它们的链接,但无法使其工作。

PS: I tried using the sintax to make the images be on the post, instead of a link to them, but couldn't get it to work.


你看到的是 Entry 部件周围的默认 边框宽度 。这不是填充。边框宽度在视觉上将 Entry 部件的内容与其周围的部件隔开。

你可以使用 borderwidth 选项将其更改为 0 来删除此“额外填充”:

foo = tk.Entry(root_window, width=10, borderwidth=0)
foo.grid(row=0, column=0)

这将删除边框并使 Entry 部件紧挨着 Canvas 部件。

以下是一些需要牢记的额外说明:

  • padx pady 选项控制部件 内部 的填充,即文本与其边框之间的空间。
  • sticky 选项控制部件在其单元格内的对齐方式,但这不会影响边框宽度。

希望这有帮助!如果还有其他问题,请告诉我。

标签:python,tkinter,tkinter-entry
From: 78800239

相关文章

  • 我看不懂这个python脚本?
    用于加载.dat文件的Python脚本importcsvfromdjango.core.management.baseimportBaseCommandfromrecommender.modelsimportUser,Artist,Tag,UserArtist,UserTaggedArtist,UserFriendimportosfromdjango.confimportsettings#Definethepathtothedatab......
  • 使用操作系统工具通过 Python 3 扫描图像
    我正在使用python构建一个应用程序,它需要能够连接到扫描仪并处理生成的pdf/jpeg/其他文件中的数据。我一直在尝试找到一种连接到扫描仪以请求扫描的方法,但没有真正的进展。我已经查看了我能找到的所有选项,包括这个答案:我想连接我的图像扫描仪程序我发现的大多......
  • Python,pandas从字符串中解析数字和字符串
    在Python中,我想解析一个字符串并将数字部分(可能有也可能没有小数点)作为浮点数返回,并将后缀作为字符串返回。示例为:7.1英寸->7.1,英寸7.1”->7.1,“7英寸->7.0,英寸-10dB->-10.0,dB-10.2dB->-10.2,dB数字部分和后缀之间没有空格。另外,我想将其应......
  • 如何在 Python 中加载站点的所有资源,包括 AJAX 请求等?
    我知道如何使用Python请求网站并读取其文本。过去,我曾尝试使用像BeautifulSoup这样的库来发出对网站上链接的所有请求,但这并没有得到看起来不像完整URL的内容,例如AJAX请求和大多数对原始域(因为“http://example.com”将丢失,更重要的是,它不是<ahref='url'>......
  • 使用Python进行PDF旋转
    使用python旋转扫描的pdf后,它工作得很好,但将pdf发送给第三方后,第三方仍然将pdf检测为90度pdf有什么办法可以解决旋转和这个问题importPyPDF2withopen('input.pdf','rb')asfile:#CreateaPDFreaderobjectreader=PyPDF2.PdfReader(file)......
  • Python win32serviceutil QueryServiceStatus:返回值是什么意思?
    我正在学习使用pywin32,并尝试在64位Python3.6.4上使用win32serviceutil模块以下代码:importwin32serviceutilasserviceserviceStatus=service.QueryServiceStatus("WinDefend")print(serviceStatus)返回以下元组:(16,4,197,0,0,0,0)我对wind......
  • Python request-html 未下载 Chromium
    importrequestsfrombs4importBeautifulSoupfromrequests_htmlimportHTMLSessionurl="https://dmarket.com/ingame-items/item-list/csgo-skins?title=recoil%20case"sesion=HTMLSession()response=sesion.get(url)response.html.render()soup=B......
  • VS Code 不改变 python 环境
    我正在使用VS-Code和anaconda环境作为python解释器。我通过ctrl+shift+`选择准确的anaconda基础环境,它也反映在vscode的下侧面板中。但是,当我检查python版本时,它显示我系统的默认python环境3.7.9如果您看到下面的截图,anaconda环境是3.......
  • 使用 Python 打开保存为 Parquet 文件中元数据的 R data.table
    使用R,我创建了一个Parquet文件,其中包含一个data.table作为主要数据,另一个data.table作为元数据。library(data.table)library(arrow)dt=data.table(x=c(1,2,3),y=c("a","b","c"))dt2=data.table(a=22222,b=45555)attr(dt,&......
  • Python 需要 Windows 长路径
    我尝试运行此安装:pip3installmsgraph-sdk它给了我这个错误:它说我需要使用此链接启用Windows长路径:https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry#enable-long-paths-in-windows-10-versi......