python - 为什么在添加按钮后调节 tk 画布大小的关键参数不起作用?
问题描述
我试图建立一个足够大的窗口,其中包含一些小部件。所以我传递了一些关键参数来调节画布的大小,它按预期工作。但是,当我在画布内添加一个按钮时,窗口恢复到原来的小尺寸(可能是默认尺寸)。
我在代码末尾测试了高度宽度的值: print(window["width"]) 给出 700 print(window["height"]) 给出 800
这进一步让我感到困惑,因为如果宽度和高度属性具有我输入的值,为什么添加按钮会阻止窗口显示这些属性?
import tkinter as tk
root=tk.Tk()
window=tk.Canvas(root,width=700,height=800)
window.pack()
button=tk.Button(window,text="test button") #(1)
button.pack()#(2)
# the Canvas shows the wanted size when (1) and (2)is deleted
root.mainloop()
解决方案
Canvas
或者当 a被打包或网格化Frame
时会缩小到它需要的大小。widget
但是你可以通过propagate
明确告诉它不要:
window=tk.Canvas(root,width=700,height=800)
window.pack()
window.propagate(0)
或者,您可以在小部件place
上使用方法Button
:
button.place(relx=0.5,rely=0.5)
推荐阅读
- php - 如何在 dockerfile 上编写正确的指令以增加 PHP 资源?
- apache-spark - 纱线上的 Spark 应用程序卡在 toLocalIterator.toList
- reactjs - reactstrap modal 中的 Graphql 突变 - 无法对未安装的组件执行 React 状态更新
- google-maps - 从 ArcGIS KML 将数据导入 Google 地图:无法识别字段
- c++ - C++ 中用于并行化的字符串数组
- visual-studio - 为什么 VS 2019 让哈希注释在 YAML 文件中使用大字体?
- sql - 如何创建其中一个字段不是主键的关联表?
- java - 如何根据版本过滤出 Java 方法?
- xcode - 每次我将文本字段拖到屏幕上时,它都会调整大小以适应整个屏幕。有什么办法可以调整它的大小使其成为一个小文本框?
- javascript - 当另一个数字上升时,如何降低一个数字?