python tkinter界面随分辨率自动调整尺寸,Tkinter画布自动调整大小
所以在回答这个问题的过程中,我遇到了来自Tkinter的一些奇怪的行为。我有一个类,它可以调整一个Canvas实例的大小,以及在该实例上绘制的任何小部件的大小。但是,当我运行代码时,不管窗口的初始尺寸是多少,窗口都会不断地扩展,直到填满整个屏幕。发生这种情况后,窗口的行为与预期完全一样,可以正确调整对象的大小。窗口仅在启动时展开以填充屏幕。
通过阅读Tkinter文档,我可以相信这可能是特定于平台的(但我没有任何证据)。
我的问题是:为什么会这样?我怎样才能阻止它?
代码如下:from Tkinter import *
# a subclass of Canvas for dealing with resizing of windows
class ResizingCanvas(Canvas):
def __init__(self,parent,**kwargs):
Canvas.__init__(self,parent,**kwargs)
self.bind("", self.on_resize)
self.height = self.winfo_reqheight()
self.width = self.winfo_reqwidth()
def on_resize(self,event):
# determine the ratio of old width/height to new width/height
wscale = float(event.width)/self.width
hscale = float(event.height)/self.height
self.width = event.width
self.height = event.height
# resize the canvas
self.config(width=self.width, height=self.height)
# rescale all the objects tagged with the "all" tag
self.scale("all",0,0,wscale,hscale)
def main():
root = Tk()
myframe = Frame(root)
myframe.pack(fill=BOTH, expand=YES)
mycanvas = ResizingCanvas(myframe,width=850, height=400, bg="red")
mycanvas.pack(fill=BOTH, expand=YES)
# add some widgets to the canvas
mycanvas.create_line(0, 0, 200, 100)
mycanvas.create_line(0, 100, 200, 0, fill="red", dash=(4, 4))
mycanvas.create_rectangle(50, 25, 150, 75, fill="blue")
# tag all of the drawn widgets
mycanvas.addtag_all("all")
root.mainloop()
if __name__ == "__main__":
main()
python tkinter界面随分辨率自动调整尺寸,Tkinter画布自动调整大小相关推荐
- python tkinter界面随分辨率自动调整尺寸,Tkinter自适应文本和尺寸
一种解决方案是make a theme or styles,您应用了自己设置的缩放算法.这里只是一个简单的例子,只有一个按钮. import tkinter as tk from tkinter im ...
- python 图形界面文本处理_python3.6 +tkinter GUI编程 实现界面化的文本处理工具
一.背景: 1.工作中自己及同事在查数据库.测试接口时需要对一些字符串或json串作预处理,目前这些问题网上均有在线转换的工具,但很繁杂,可能需要打开几个网页窗口: 2.之前给妹子做的文本处理工具(h ...
- python 图形界面文本处理_python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)...
更新: 2017.07.17 补充滚动条.win批处理拉起py 2017.08.13 新增自定义图标 一.背景: 1.工作中自己及同事在查数据库.测试接口时需要对一些字符串或json串作预处理,目前这 ...
- python设置画布大小_python-Tkinter画布自动调整大小
因此,在回答question的过程中,我遇到了Tkinter的一些奇怪行为.我有一个可调整Canvas实例以及在其上绘制的小部件的大小的类.但是,当我运行代码时,无论初始窗口尺寸是多少,窗口都会连续扩 ...
- python tkinter界面 控件位置随窗体自动调整适应_如何实现python tkinter控件随窗口变化?...
不管是对于Java还是对于Python,我们最开始学习的时候,都会碰到关于开发上的窗口设置,如果不设置这个内容,你所呈现的项目效果,是非常不美观的,而往往为了符合美化,大家都会花费很多心思在基础的窗口 ...
- python图形界面教程(tkinter)
1.图形化界面设计的基本理解 当前流行的计算机桌面应用程序大多数为图形化用户界面(Graphic User Interface,GUI),即通过鼠标对菜单.按钮等图形化元素触发指令,并从标签.对话框等 ...
- Python图形界面设计(Tkinter库)
文章目录 创建 Windows 窗口 几何布局管理器 pack 几何布局管理器 grid 几何布局管理器 place 几何布局管理器 Tkinter 组件 标签组件 Label 按钮组件 Button ...
- 关于在python的tkinter界面中镶嵌mayplotlib动态图
关于在python的tkinter界面中镶嵌mayplotlib动态图 很多的时候,我们需要给客户展示一些比较美观的界面,中间就必然需要一些精美的图表,让客户看起来更加的专业,因此,我们就需要tkin ...
- python通过tkinter界面库实现三角形成立的测试
python通过tkinter界面库实现三角形成立的测试 from tkinter import * from tkinter import messagebox login = Tk() login ...
最新文章
- Python:尝试对知乎网验证码进行处理
- ORA-01940: cannot drop a user that is currently connected 问题解析
- 用特征迭代次数区分minst数据集的0和1
- canvas画布 带箭头的虚线_娇小女生只能走可爱风?No!带你解锁别样的高级穿搭法则...
- 七、数据库技术基础(一)
- ubuntu系统靠谱的清理内存的方法(can not allocate memory 问题)
- K8S_Google工作笔记0012---通过二进制方式_部署master组件
- Web前端开发好学吗?谈谈一位学姐的前端工程师之路
- 管理感悟:掌握写文档的技能
- Camera 驱动 Bringup
- java连接SqlServer2000
- 一些在网上搜集的奇奇怪怪的bat代码。。。仅供参考!小心中招!
- HTML-----超链接与表格Lable(详细可看)
- 移动H5前端性能优化指南
- 06 第三方之短信封装
- tftpd32更新内核文件
- harmonyos系统官网,harmonyos系统官网2.0版本
- Linux下的USB驱动
- 在centOS中安装MySQL时遇到Configuring incomplete,errors occurred该怎么办?
- Python - 删除print()中的空格