所以在回答这个问题的过程中,我遇到了来自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画布自动调整大小相关推荐

  1. python tkinter界面随分辨率自动调整尺寸,Tkinter自适应文本和尺寸

    一种解决方案是make a theme or styles,您应用了自己设置的缩放算法.这里只是一个简单的例子,只有一个按钮. import tkinter as tk from tkinter im ...

  2. python 图形界面文本处理_python3.6 +tkinter GUI编程 实现界面化的文本处理工具

    一.背景: 1.工作中自己及同事在查数据库.测试接口时需要对一些字符串或json串作预处理,目前这些问题网上均有在线转换的工具,但很繁杂,可能需要打开几个网页窗口: 2.之前给妹子做的文本处理工具(h ...

  3. python 图形界面文本处理_python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)...

    更新: 2017.07.17 补充滚动条.win批处理拉起py 2017.08.13 新增自定义图标 一.背景: 1.工作中自己及同事在查数据库.测试接口时需要对一些字符串或json串作预处理,目前这 ...

  4. python设置画布大小_python-Tkinter画布自动调整大小

    因此,在回答question的过程中,我遇到了Tkinter的一些奇怪行为.我有一个可调整Canvas实例以及在其上绘制的小部件的大小的类.但是,当我运行代码时,无论初始窗口尺寸是多少,窗口都会连续扩 ...

  5. python tkinter界面 控件位置随窗体自动调整适应_如何实现python tkinter控件随窗口变化?...

    不管是对于Java还是对于Python,我们最开始学习的时候,都会碰到关于开发上的窗口设置,如果不设置这个内容,你所呈现的项目效果,是非常不美观的,而往往为了符合美化,大家都会花费很多心思在基础的窗口 ...

  6. python图形界面教程(tkinter)

    1.图形化界面设计的基本理解 当前流行的计算机桌面应用程序大多数为图形化用户界面(Graphic User Interface,GUI),即通过鼠标对菜单.按钮等图形化元素触发指令,并从标签.对话框等 ...

  7. Python图形界面设计(Tkinter库)

    文章目录 创建 Windows 窗口 几何布局管理器 pack 几何布局管理器 grid 几何布局管理器 place 几何布局管理器 Tkinter 组件 标签组件 Label 按钮组件 Button ...

  8. 关于在python的tkinter界面中镶嵌mayplotlib动态图

    关于在python的tkinter界面中镶嵌mayplotlib动态图 很多的时候,我们需要给客户展示一些比较美观的界面,中间就必然需要一些精美的图表,让客户看起来更加的专业,因此,我们就需要tkin ...

  9. python通过tkinter界面库实现三角形成立的测试

    python通过tkinter界面库实现三角形成立的测试 from tkinter import * from tkinter import messagebox login = Tk() login ...

最新文章

  1. Python:尝试对知乎网验证码进行处理
  2. ORA-01940: cannot drop a user that is currently connected 问题解析
  3. 用特征迭代次数区分minst数据集的0和1
  4. canvas画布 带箭头的虚线_娇小女生只能走可爱风?No!带你解锁别样的高级穿搭法则...
  5. 七、数据库技术基础(一)
  6. ubuntu系统靠谱的清理内存的方法(can not allocate memory 问题)
  7. K8S_Google工作笔记0012---通过二进制方式_部署master组件
  8. Web前端开发好学吗?谈谈一位学姐的前端工程师之路
  9. 管理感悟:掌握写文档的技能
  10. Camera 驱动 Bringup
  11. java连接SqlServer2000
  12. 一些在网上搜集的奇奇怪怪的bat代码。。。仅供参考!小心中招!
  13. HTML-----超链接与表格Lable(详细可看)
  14. 移动H5前端性能优化指南
  15. 06 第三方之短信封装
  16. tftpd32更新内核文件
  17. harmonyos系统官网,harmonyos系统官网2.0版本
  18. Linux下的USB驱动
  19. 在centOS中安装MySQL时遇到Configuring incomplete,errors occurred该怎么办?
  20. Python - 删除print()中的空格

热门文章

  1. PS青山绿水婚片处理
  2. Word打字延迟卡顿的解决方法
  3. Windows11拼音打字不出现候选字词窗口
  4. 【原创】基于SSM的医院预约挂号系统(医院预约挂号系统毕设源代码)
  5. NVMe Protect Information
  6. “圆周率的计算”实例详解
  7. python打招呼的代码_GitHub - worry45678/LearnPython: 以撸代码的形式学习Python
  8. 使用接口实现打印机功能
  9. IPCam网络摄像头
  10. 如何识别一个网站是正规合法的网站