首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法重复获取TKinter窗口尺寸

TKinter是Python的一个标准GUI库,用于创建图形用户界面。它提供了一系列的组件和工具,可以用于创建窗口、按钮、文本框等用户界面元素。

对于无法重复获取TKinter窗口尺寸的问题,可能是由于TKinter的事件循环机制导致的。在TKinter中,窗口尺寸的获取通常是通过绑定窗口的"Configure"事件来实现的。当窗口的尺寸发生变化时,会触发该事件,从而可以获取到最新的窗口尺寸。

然而,由于TKinter的事件循环机制,当窗口尺寸发生变化时,会触发多次"Configure"事件。这就导致了在处理"Configure"事件时,可能会多次获取到相同的窗口尺寸,从而无法重复获取窗口尺寸。

为了解决这个问题,可以使用一个标志位来判断是否已经获取过窗口尺寸。当第一次获取到窗口尺寸后,将标志位设置为True,并在后续的"Configure"事件中忽略对窗口尺寸的获取。

以下是一个示例代码,演示如何解决无法重复获取TKinter窗口尺寸的问题:

代码语言:txt
复制
import tkinter as tk

def on_configure(event):
    if not hasattr(on_configure, 'has_been_called'):
        # 第一次获取窗口尺寸
        on_configure.has_been_called = True
        print("Window size:", event.width, event.height)

root = tk.Tk()
root.geometry("400x300")

# 绑定"Configure"事件
root.bind("<Configure>", on_configure)

root.mainloop()

在上述代码中,通过使用hasattr函数来判断是否已经获取过窗口尺寸。如果on_configure函数第一次被调用时,has_been_called属性不存在,说明是第一次获取窗口尺寸,将其设置为True,并打印窗口尺寸。在后续的"Configure"事件中,由于has_been_called属性已经存在,将直接忽略对窗口尺寸的获取。

需要注意的是,上述代码只是解决了无法重复获取窗口尺寸的问题,并没有涉及到具体的云计算或腾讯云产品。如果需要了解更多关于云计算或腾讯云的内容,可以参考腾讯云官方文档或相关教程。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

软件测试|超好用超简单的Python GUI库——tkinter(二)

(0,0)或者resizable(False,False)时不可更改window.geometry()设定主窗口的大小以及位置,当参数值为 None 时表示获取窗口的大小和位置信息。...()获取电脑屏幕的分辨率(尺寸)window.winfo_width() window.winfo_height()获取窗口的大小,同样也适用于其他控件,但是使用前需要使用 window.update...当 Tkinter 使用 WM_DELETE_WINDOW 协议与主窗口进行交互时,Tkinter窗口右上角x号的关闭功能失效,也就是无法通过点击x来关闭窗口,而是转变成调用用户自定义的函数。...设置窗的位置当我们运行 Tkinter 程序时,主窗口都会出现在距离屏幕左上角指定的位置上,这是由 Tkinter 软件包默认设置的。...# 窗口居中,获取屏幕尺寸以计算布局参数,使窗口居屏幕中央screenwidth = window.winfo_screenwidth()screenheight = window.winfo_screenheight

2.6K30
  • 过分了,别人用来做桌面应用开发,这家伙却用来撩妹(1)–上帝给你开一个窗口Tkinter

    正文步骤实现 上帝给你开一个窗口Tkinter) 第一步:导入模块,无需安装 import tkinter 第二步:实现一个窗口 import tkinter tk=tkinter.Tk() tk.mainloop...,高,以及窗口出现的坐标, 桌面的坐标系:以桌面左上角为(0,0)向右为x轴正半轴,向下为y轴正半轴 设置固定大小: tk.minsize(560, 545) # 最小尺寸 tk.maxsize(560...+D最小化才能关闭 第五步:获取当前桌面的尺寸 有时候我们需要获取到当前屏幕的大小,来决定我们窗口的大小,那就需要获取当前屏幕的宽高,如何获取呢?...w = tk.winfo_screenwidth()#获取屏幕宽 h = tk.winfo_screenheight()#获取屏幕高 第六步:设置窗口图标 tk.iconbitmap('favicon.ico...() y = tk.winfo_y() 通常结合.update()使用,获取窗口改变之后的数据。

    1.7K60

    过分了,别人用来做桌面应用开发,这家伙却用来撩妹(1)--上帝给你开一个窗口Tkinter)—tkinter常用函数解析

    正文步骤实现 上帝给你开一个窗口Tkinter) 第一步:导入模块,无需安装 import tkinter 第二步:实现一个窗口 import tkinter tk=tkinter.Tk() tk.mainloop...高,以及窗口出现的坐标, 桌面的坐标系:以桌面左上角为(0,0)向右为x轴正半轴,向下为y轴正半轴 设置固定大小: tk.minsize(560, 545) # 最小尺寸 tk.maxsize(560,...+D最小化才能关闭 第五步:获取当前桌面的尺寸 有时候我们需要获取到当前屏幕的大小,来决定我们窗口的大小,那就需要获取当前屏幕的宽高,如何获取呢?...w = tk.winfo_screenwidth()#获取屏幕宽 h = tk.winfo_screenheight()#获取屏幕高 第六步:设置窗口图标 tk.iconbitmap('favicon.ico...() y = tk.winfo_y() 通常结合.update()使用,获取窗口改变之后的数据。

    1.5K10

    【Python100天学习笔记】Day10 图形用户界面和游戏开发

    基本上使用tkinter来开发GUI应用需要以下5个步骤: 导入tkinter模块中我们需要的东西。 创建一个顶层窗口对象并用它来承载整个GUI应用。 在顶层窗口对象上添加GUI组件。...制作游戏窗口 import pygame def main(): # 初始化导入的pygame中的模块 pygame.init() # 初始化用于显示的窗口并设置窗口尺寸...import pygame def main(): # 初始化导入的pygame中的模块 pygame.init() # 初始化用于显示的窗口并设置窗口尺寸 screen...import pygame def main(): # 初始化导入的pygame中的模块 pygame.init() # 初始化用于显示的窗口并设置窗口尺寸 screen...import pygame def main(): # 初始化导入的pygame中的模块 pygame.init() # 初始化用于显示的窗口并设置窗口尺寸 screen

    2.5K20

    python tkinter库 密码实时显示_python tkinter库实现气泡屏保和锁屏

    本文实例为大家分享了python tkinter库实现气泡屏保和锁屏的具体代码,供大家参考,具体内容如下 代码: import random import tkinter import threading...RandomBall(object): “”” 定义关于球的类 “”” def __init__(self, canvas, screen_width, screen_height): “””初始化画布和屏幕尺寸...(0, 255) self.color = ‘#%02x%02x%02x’ % (c(), c(), c()) def create_ball(self): “”” 创建球的函数””” # 通过圆心,获取一矩形左上角和右下角的坐标...def __init__(self): self.balls = [] # 每次启动程序,球的数量随机 self.num_balls = random.randint(20, 60) # 生成root主窗口...self.root = tkinter.Tk() # 获取屏幕尺寸,作为主窗口尺寸 self.width = self.root.winfo_screenwidth() self.height = self.root.winfo_screenheight

    79920

    python tkinter 设计指南

    ,当参数值为 None 时表示获取窗口的大小和位置信息。...() 获取电脑屏幕的分辨率(尺寸) window.winfo_width() window.winfo_height() 获取窗口的大小,同样也适用于其他控件,但是使用前需要使用 window.update...# 当 Tkinter 使用 WM_DELETE_WINDOW 协议与主窗口进行交互 # 则 Tkinter窗口右上角 x 号的关闭功能失效, # 也就是无法通过点击 x 来关闭窗口,转变成调用用户自定义的函数...as tk window = tk.Tk() window.title('c语言中文网') # 设置窗口大小变量 width = 300 height = 300 # 窗口居中,获取屏幕尺寸以计算布局参数...注意,此处需要在英文状态下进行输入 lb.bind('',show_key) # 设置按钮获取焦点 lb.focus_set() lb.pack() # 显示窗口 root.mainloop

    6.8K30

    软件测试|超好用超简单的Python GUI库——tkinter

    ()Tk() 实例创建一个根窗口root.title 设定窗口的标题root.geometry 设定窗口的大小与相对于屏幕左上角的位置:即参数形式是:f"{width}x{height}{x}{y}",...其中 + 表示相对于左上角,而 - 表示相对于右下角使用 root.mainloop() 激活根窗口代码显示效果如下:图片组件使用当我们需要为窗口中的模块区域创建不同于窗口的主题时,我们应该如何处理呢?...我们可以使用Frame来实现我们的需求,Frame 支持参数传入来说设定容器的尺寸。也支持以索引的赋值的方式修改容器的默认属性,比如修改容器的背景颜色。...=width)frame['background'] = 'orange' # 设定背景颜色frame.pack() # 放置组件root.mainloop()Frame 支持参数传入来说设定容器的尺寸...库的一些基本使用,需要提醒大家的是,Python3.x版本的库名为tkinter,Python2.x版本的库名为Tkinter

    1.4K20

    Tkinter教程(每天半小时,3天彻底掌握Tkinter)day1

    是什么 Tkinter的弊端 第一个Tkinter程序 插入ico 关闭python窗体 python窗体居中设置 护眼色_颜色名称_16进制色值_RGB色值 主窗体设置 窗口常用方法 python获取电脑屏幕的大小...python获取窗口的大小,必须先刷新一下屏幕 python设置窗体不能被拉伸 python背景颜色设置 python设置窗口处于顶层 python设置窗体透明度 ---- 教程环境 运行系统:win10...,当参数值为 None 时表示获取窗口的大小和位置信息。...() 获取电脑屏幕的分辨率(尺寸) window.winfo_width() window.winfo_height() 获取窗口的大小,同样也适用于其他控件,但是使用前需要使用 window.update...d" % (window.winfo_screenwidth(), window.winfo_screenheight())) python获取窗口的大小,必须先刷新一下屏幕 window.update

    5.2K20

    ChatGPT自动化编程:三分钟用Tkinter搞定计算器

    可以使用下面的内容向ChatGPT提问: 使用Python的tkinter实现一个程序,创建一个300 * 400的窗口窗口分为两部分,上部分是一个文本输入框,其余部分都分给下部分。...ChatGPT会给出下面的实现代码: import tkinter as tk from tkinter import Entry, Button # 创建主窗口 root = tk.Tk() #...,所以可以在创建窗口代码的后面输入下面的注释,利用GitHub Copilot自动生成设置标题的代码,当然,如果对Tkinter很熟悉,也可以直接编写设置窗口标题的代码。...图2 计算器的界面 当窗口改变尺寸后,按钮和文本框也是自适应的。 2....但这个Button对象并没有单独保存在变量中,导致了后面的代码无法再次使用这个Button对象,所以需要按如下方式手动改进一下: for button in buttons: # 创建按钮并放置在相应的网格位置

    18110
    领券