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

如何同时但异步地移动两个tkinter小部件?

在Tkinter中,可以使用after()方法来实现同时但异步移动两个小部件。after()方法用于在指定的时间之后调用一个函数。

下面是一个示例代码,演示如何同时但异步移动两个Tkinter小部件:

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

def move_widget1():
    x1, y1 = canvas.coords(widget1)
    canvas.coords(widget1, x1 + 5, y1 + 5)  # 移动widget1的坐标
    root.after(100, move_widget1)  # 100毫秒后再次调用move_widget1函数

def move_widget2():
    x2, y2 = canvas.coords(widget2)
    canvas.coords(widget2, x2 - 5, y2 - 5)  # 移动widget2的坐标
    root.after(100, move_widget2)  # 100毫秒后再次调用move_widget2函数

root = tk.Tk()

canvas = tk.Canvas(root, width=400, height=400)
canvas.pack()

widget1 = canvas.create_oval(50, 50, 100, 100, fill="red")
widget2 = canvas.create_oval(150, 150, 200, 200, fill="blue")

move_widget1()  # 启动移动widget1的函数
move_widget2()  # 启动移动widget2的函数

root.mainloop()

在这个例子中,我们创建了一个Tkinter窗口,并在窗口中创建了两个圆形小部件(widget1和widget2)。move_widget1()move_widget2()函数分别用于移动widget1和widget2的坐标。使用canvas.coords()方法可以获取或设置小部件的坐标。

在每次移动之后,我们使用after()方法在100毫秒后再次调用相应的移动函数,实现了异步移动。通过适当调整after()方法的延迟时间,可以控制移动的速度。

请注意,这只是一个简单的示例,用于演示如何同时但异步移动两个小部件。实际应用中,您可能需要根据具体的需求和场景进行适当的修改和扩展。

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

相关·内容

目录

目录 使用Tkinter构建你的第一个Python GUI应用程序 添加小部件 测验 使用小部件 使用标签小部件显示文本和图像 显示带有按钮小部件的可点击按钮 通过条目小部件获取用户输入 通过文本小部件获取多行用户输入...可以使用Label小部件的.pack()方法: >>> greeting.pack() 当你使用.pack()将小部件放入窗口时,Tkinter会将窗口的尺寸缩小到最小,同时仍将小部件完全包围。...此时,你可以制作一些普通的窗口来显示消息,尚未创建功能完善的应用程序。在下一节中,你将学习如何使用Tkinter强大的几何管理器来控制应用程序的布局。...这样可以确保Label小部件始终显示其文本而不会截断任何字符,即使窗口大小非常也是如此。 结果是网格布局随着窗口大小的调整而平滑扩展和收缩: 自己尝试一下,以了解它的工作原理!...在本教程中,你已经学到了一些重要的Tkinter概念: 如何使用小部件 如何使用几何图形管理器控制应用程序布局 如何使你的应用程序具有交互性 如何使用五个基本Tkinter部件(Label,Button

29.8K20
  • Python|GUI编程中Entry部件详解

    一、Entry部件基本介绍 Entry小部件Tkinter的基本小部件,用于从应用程序的用户获取输入,即文本字符串。这个小部件允许用户输入一行文本。...如果用户输入的字符串比小部件的可用显示空间长,则将滚动内容。这意味着不能看到字符串的整体。箭头键可用于移动到字符串的不可见部分。如果要输入多行文本,则必须使用文本小部件。...但是我们的程序如何访问这些数据呢?我们如何阅读条目的内容?简而言之:get()方法就是我们要找的。我们用两个按钮“退出”和“显示”来扩展我们的小脚本。...三、Entry最简单的计算器实例化 了解了上面的操作之后,我们可以编写一个计算器功能,我们并不是真的在编写计算器,而是提供一个能够计算任何数学表达式并打印结果的图形用户界面。...,我会根据读者的要求来更新更多和tkinter相关的内容,有读者想看什么有趣的程序都可以留言告诉笔者,每周六就会更新本人的原创文章。

    1.8K40

    Python GUI开发:打造直观、用户友好的应用

    早期Python GUI开发涉及使用Tkinter等库,Tkinter至今仍然是该领域的支柱,提供简单易用的特点。...凭借丰富的小部件和本地化的外观,Tkinter成为入门级GUI开发的绝佳选择。其使用简单,文档详尽,使得初学者能够迅速上手,同时对于一些小型项目和快速原型开发也具备足够的能力。...其强调移动应用开发,同样适用于桌面应用程序。Kivy的独特之处在于其使用图形处理单元(GPU)进行渲染,从而实现平滑的动画和高性能的图形呈现。...通过将代码分解为模块,开发者可以更容易地定位和修复问题,同时也能够更方便引入新功能。测试和调试:在GUI开发中,测试和调试是至关重要的步骤。...通过使用异步编程、合理使用缓存和优化图形渲染,可以提高应用程序的性能。跨平台兼容性:如果应用程序需要在多个操作系统上运行,确保跨平台兼容性是至关重要的。

    58610

    设计一个界面,很简单!

    本周,编给大家分享在Python中如何制作一个简单的图形界面吧,Python里有很多图形用户界面库,如Tkinter, Pmw, wxPython, PySide, PyQt, PyGTk, win32ui..., Glade等,在这些库中,编只会Tkinter、wxPython和PyQt三种库,由于内置库Tkinter最为简单实用,所以就先从它开始吧,其他库以后慢慢介绍吧!...接下来,我将给大家简单介绍一下Tkinter的使用方法。 一、简单说明 首先,我对Tkinter这一模块做一个简要地说明。...: 3、Tkinter部件的类别 Tkinter包括21种核心小部件,如下图所示: 使用上面部分小部件类随便写的一个界面(如下图),界面布局有些不合理,也不是很美观,大家随便看看就行,今天就写到这里了...,下次再给大家分享各个小部件的具体用法、Tkinter布局管理器的使用等知识。

    2.6K100

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

    如果想要创建一个美观、符合操作系统平台的 GUI,推荐使用主题化的模块 tkinter.ttk。基础使用首先我们来看一个简单的例子,通过简单示例来介绍一下tkinter的使用。...其中 + 表示相对于左上角,而 - 表示相对于右下角使用 root.mainloop() 激活根窗口代码显示效果如下:图片组件使用当我们需要为窗口中的模块区域创建不同于窗口的主题时,我们应该如何处理呢?...tkinter 为小部件(包括容器)提供了几何管理器(用于布局小部件的摆放位置) Grid、Place、Place,且每个小部件均提供几何管理器的实例方法,比如 frame.pack()代码显示效果如下...库的一些基本使用,需要提醒大家的是,Python3.x版本的库名为tkinter,Python2.x版本的库名为Tkinter。...后面我会将会使用tkinter编写一些有趣的GUI程序,敬请期待!

    1.4K20

    PySimpleGUI | 用Python玩转GUI开发,为什么不能简单一点!

    (widgets),这里举例创建两个文本部件两个按钮 text = sg.Text("输入你的早起的看法") textinput = sg.InputText() bt = sg.Button('确认...需要注意的是,按行布局需要把对应行中的所有部件放到一个列表中,如上“确认”与“取消”按钮放在一个列表中,两个文本部件放到一个列表中,最后形成一个嵌套列表layout。...窗体包括名字和你设定的部件 window = sg.Window('欢迎来到早起Python', layout) 第四步就是创建一个循环来让GUI界面运行同时读取与获取输入输出值。...break #相当于关闭界面 print(f'Event: {event}') print(str(values)) window.close() 效果如图所示4、如何使用部件...在下一篇的进阶讲解文章中将介绍如何搭建属于自己的游客照和简单的调用计算器视觉(cv)

    6.6K30

    实战 | 用Python放一场浪漫的烟花秀!

    Tkinter应用的基本设置如下: root = tk.Tk() 为了能初始化Tkinter,我们必须创建一个Tk()根部件(root widget),它是一个窗口,带有标题栏和由窗口管理器提供的其它装饰物...该根部件必须在我们创建其它小部件之前就创建完毕,而且只能有一个根部件。 w = tk.Label(root, text="Hello Tkinter!") 这一行代码包含了Label部件。...你也可以调用其它小部件:Button,Canvas等等。 w.pack() root.mainloop() 接下来的这两行代码很重要。这里的打包方法是告诉Tkinter调整窗口大小以适应所用的小部件。...每个粒子都会有一些重要的属性,支配了它的外观和移动状况:大小,颜色,位置,速度等等。...模拟 现在我们将粒子的移动概念化,不过很明显,一个烟花不能只有一个粒子,一场烟花秀也不能只有一个烟花。

    2.9K10

    Python中tkinter模块的常用参数总结

    (在Tkinter中窗口部件类没有分级;所有的窗口部件类在树中都是兄弟。)...(1,4,0),1为图像对象,4为横移4像素,0为纵移像素,然后用root.update()刷新即可看到图像的移动,为了使多次移动变得可视,最好加上time.sleep()函数;只要用create_方法画了一个图形...coords(ID) 返回对象的位置的两个坐标(4个数字元组);对于按钮组件、菜单组件等可以在创建组件时通过command参数指定其事件处理函数。...10、菜单Menu参数: tearoff   分窗,0为在原窗,1为点击分为两个窗口bg,fg    背景,前景borderwidth   边框宽度font...   鼠标指针离开某一组件区域;      滚动滚轮;       按下A键,A可用其他键替代;    同时按下

    83230

    七个Python必备的GUI库,这次一定要学会!

    今天,F就给大家介绍七个Python必备的GUI库,每一个都值得学习。 01. PyQt5 PyQt5由Riverbank Computing开发。...还包括了线程,Unicode,正则表达式,SQL数据库,SVG,OpenGL,XML和功能完善的Web浏览器,以及许多丰富的GUI小部件集合。 使用pip安装一下。...Tkinter提供了各种小部件,例如标签,按钮,文本字段,复选框和滚动按钮等。 支持Grid(网格)布局,由于我们的程序大多数都是矩形显示,这样即使是复杂的设计,开发起来也变得简单些。...Kivy Kivy是另一个开源的Python库,最大的优点就是可以快速编写移动应用程序(手机)。...同时还开源代码,跨平台项目。目前可在基于Unix的系统,Windows和Mac OS上运行。 Python2和Python3,都是可以支持的。

    4.2K30

    七个Python必备的GUI库,这次一定要学会!

    今天,F就给大家介绍七个Python必备的GUI库,每一个都值得学习。 01. PyQt5 PyQt5由Riverbank Computing开发。...还包括了线程,Unicode,正则表达式,SQL数据库,SVG,OpenGL,XML和功能完善的Web浏览器,以及许多丰富的GUI小部件集合。 使用pip安装一下。...Tkinter提供了各种小部件,例如标签,按钮,文本字段,复选框和滚动按钮等。 支持Grid(网格)布局,由于我们的程序大多数都是矩形显示,这样即使是复杂的设计,开发起来也变得简单些。...Kivy Kivy是另一个开源的Python库,最大的优点就是可以快速编写移动应用程序(手机)。...同时还开源代码,跨平台项目。目前可在基于Unix的系统,Windows和Mac OS上运行。 Python2和Python3,都是可以支持的。

    4.3K20

    Python 之 tkinter 学习笔记

    Python 之 tkinter 学习笔记 前言 最近有个需求需要实现,最后要给出一个 GUI 界面,想了想还是不用 c++ 写 MFC 了,因为还涉及到网络编程,感觉还是简单事情简单做,然后转手写...python,刚开始想尝试 pyqt,感觉好像还是有点麻烦,本来就只是做个插件,最后就大概看了一下内置的 tkinter,一边写一边学也马上就上手了,总的来说感觉还是简单的。...窗口部件简介 tkinter 同样有许多小部件,例如按钮,文本框,输入框等,将这些组件拼接,就可以得到一个比较完整的桌面程序。...,我们同样还要考虑放置部件的位置。...在下面的代码中,我们首先创建了一个菜单栏 menubar,接着又创建了两个菜单项 menu_file 和 menu_edit,并通过 add_cascade() 将两个菜单项 File 和 Edit添加到菜单栏中

    7K20

    Flutter 凉了吗?

    与此同时,苹果也于2019年 WWDC 为开发者们带来了一套可横跨苹果几大操作系统的 UI 框架 SwiftUI。 那么在此趋势下,类似 Flutter 的这种工具真的是新一代移动开发的未来吗?...除了语法之外,Dart跟Java就很不同了。 我不打算深入讨论Dart,以免跑题,但我想讨论一下我认为它最有用的功能。这个功能就是异步操作。Dart不仅支持异步操作,而且还使其变得非常容易。...并再次输出: 有了异步操作,我们在执行需要比较久才能完成的代码的同时,其余代码的执行也不会被妨碍。...2 只写一次代码,就能同时在Android和iOS上运行 考虑到需要为Android和iOS使用不同的代码库,开发移动应用程序可能需要花费大量时间。...使用这些小部件,我们可以构建一个非常简单的UI: Flutter像一个拥有各种各样道具的魔术师,使你能轻而易举构建App的主题。你可以通过手动更改字体,颜色,并逐个设置所有内容,这需要太长时间了。

    3.1K20

    用wxPython打造Python图形界面(上)

    其中三巨头是Tkinter、wxPython和PyQt。这些工具包中的每一个都将与Windows、macOS和Linux一起工作,而PyQt具有在移动设备上工作的附加功能。...PyQt和Tkinter都自己绘制小部件,这就是为什么它们并不总是去匹配本机小部件,尽管PyQt已经非常接近了。 这并不是说wxPython不支持自定义小部件。...这是一个很好的应用程序,演示了wxPython中包含的绝大多数小部件。演示允许开发人员在一个选项卡中查看代码,并在第二个选项卡中运行代码。...开发人员将获取这些小部件,并将它们逻辑排列在一个窗口上,以便用户与之交互。 事件循环 图形用户界面的工作原理是等待用户做一些事情。这个东西叫做事件。...让我们创建一个框架应用程序来演示事件是如何工作的。 创建框架应用程序 GUI上下文中的应用程序框架是一个用户界面,其中包含没有任何事件处理程序的小部件。这些对于原型设计很有用。

    4.9K40

    Python3中tkinter模块使用方法详解

    (在Tkinter中窗口部件类没有分级;所有的窗口部件类在树中都是兄弟。) ...(1,4,0),1为图像对象,4为横移4像素,0为纵移像素,然后用root.update()刷新即可看到图像的移动,为了使多次移动变得可视,最好加上time.sleep()函数;     只要用create...coords(ID)          返回对象的位置的两个坐标(4个数字元组); 对于按钮组件、菜单组件等可以在创建组件时通过command参数指定其事件处理函数。...10、菜单Menu  参数:      tearoff          分窗,0为在原窗,1为点击分为两个窗口     bg,fg           背景,前景     borderwidth     ...鼠标指针离开某一组件区域;              滚动滚轮;             按下A键,A可用其他键替代;           同时按下

    4.5K21

    Python GUI编程学习笔记之tkinter界面布局显示详解

    本文实例讲述了Python GUI编程学习笔记之tkinter界面布局显示。...expand:先按普通标准来规定控件大小,如果后面窗口还剩下空间,那么会分给那些expand=True的控件,如图中是两个不同大小的按钮,其中2expand=True ?...ipadx, ipady:内边距 padx,pady:外边距 适用情况:与gird相比,pack有一定的局限性,但在一些很常见的情况下使用起来要容易得多: 将一个小部件放入一个框架(或任何其他容器小部件...)中,并让它填充整个框架 将多个小部件放在一起 并排放置一些小部件 补充: 常用函数: pack_propagate(flag):由窗口调用来配置pack控件时窗口的大小,当flag=0时,那么窗口大小将不再仅仅包裹住所有控件...relwidth,relheight:相对大小,比如height=0.5,width=0.5时控件占据窗口的四分之一大 适用情况: 自定义显示方式 将按钮定位在对话框中 补充: 常用函数: place_forget

    1.7K10

    七个Python必备的GUI库

    今天,F就给大家介绍七个Python必备的GUI库,每一个都值得学习。 01. PyQt5 PyQt5由Riverbank Computing开发。...还包括了线程,Unicode,正则表达式,SQL数据库,SVG,OpenGL,XML和功能完善的Web浏览器,以及许多丰富的GUI小部件集合。 使用pip安装一下。...Tkinter提供了各种小部件,例如标签,按钮,文本字段,复选框和滚动按钮等。 支持Grid(网格)布局,由于我们的程序大多数都是矩形显示,这样即使是复杂的设计,开发起来也变得简单些。...Kivy Kivy是另一个开源的Python库,最大的优点就是可以快速编写移动应用程序(手机)。...同时还开源代码,跨平台项目。目前可在基于Unix的系统,Windows和Mac OS上运行。 Python2和Python3,都是可以支持的。

    3.5K30

    Python3界面开发常用.md

    ;为用户提供了简单的 GUI 交互接口,不需要程序员知道任何有关 tkinter,框架,部件,回调或 lambda 的任何细节。...相反所有的 GUI 交互都是通过简函数调用就可以实现,EasyGUI 为用户提供了简单的 GUI 交互接口,不需要程序员知道任何有关 tkinter,框架,部件,回调或 lambda 的任何细节。...因此当两者同时运行的时候,有可能会发生冲突,且带来不可预测的结果。因此如果你发现你的 EasyGUI 程序有这样的问题,请尝试在 IDLE 外去运行你的程序。...'''选择/多选框''' #按钮组件方便提供用户一个简单的按钮选项,如果有很多选项,或者选项的内容特别长的话,更好的策略是为它们提供一个可选择的列表 choicebox(msg='Pick an item...print("\n保存完毕\n") 1.4 捕获异常 通过 exceptionbox() 函数提供了更好的方式去处理异常;使用 EasyGUI 编写 GUI 程序,有时候难免会产生异常,当然这取决于你如何运行你的应用程序

    1.7K20

    Python3界面开发常用.md

    ;为用户提供了简单的 GUI 交互接口,不需要程序员知道任何有关 tkinter,框架,部件,回调或 lambda 的任何细节。...相反所有的 GUI 交互都是通过简函数调用就可以实现,EasyGUI 为用户提供了简单的 GUI 交互接口,不需要程序员知道任何有关 tkinter,框架,部件,回调或 lambda 的任何细节。...因此当两者同时运行的时候,有可能会发生冲突,且带来不可预测的结果。因此如果你发现你的 EasyGUI 程序有这样的问题,请尝试在 IDLE 外去运行你的程序。...'''选择/多选框''' #按钮组件方便提供用户一个简单的按钮选项,如果有很多选项,或者选项的内容特别长的话,更好的策略是为它们提供一个可选择的列表 choicebox(msg='Pick an item...print("\n保存完毕\n") 1.4 捕获异常 通过 exceptionbox() 函数提供了更好的方式去处理异常;使用 EasyGUI 编写 GUI 程序,有时候难免会产生异常,当然这取决于你如何运行你的应用程序

    2K20
    领券