本文代码演示了如何在tkinter窗体上动态创建组件以及销毁组件的方法。

import tkinter

import tkinter.messagebox

import tkinter.simpledialog

btnList = []

# 动态创建组件,并计算组件在窗体上的位置

def place(n):

for i in range(n):

exec('btn'+str(i)+'=tkinter.Button(root,text='+str(i)+')')

eval('btn'+str(i)).place(x=80, y=10+i*30, width=60, height=20)

btnList.append(eval('btn'+str(i)))

root.geometry('200x'+str((n)*30+70)+'+400+300')

return n*30 + 10

# 创建tkinter应用程序

root = tkinter.Tk()

# 窗口标题

root.title('动态创建组件')

# 窗口初始大小和位置

root.geometry('200x180+400+300')

# 不允许改变窗口大小

root.resizable(False, False)

# 增加按钮的按钮

def btnSetClick():

n = tkinter.simpledialog.askinteger(title='输入一个整数',

prompt='想动态增加几个按钮:',

initialvalue=3)

if n and n>0:

startY = place(n)

modify(startY)

# 根据需要禁用和启用“增加按钮”和“清空按钮”

btnSet['state'] = 'disabled'

btnClear['state'] = 'normal'

btnSet = tkinter.Button(root,

text='增加按钮',

command=btnSetClick)

def btnClearClick():

global btnList

# 删除动态创建的按钮

for btn in btnList:

btn.destroy()

btnList = []

modify(20)

btnClear['state'] = 'disabled'

btnSet['state'] = 'normal'

btnClear = tkinter.Button(root,

text='清空按钮',

command=btnClearClick)

# 默认处于禁用状态

btnClear['state'] = 'disabled'

# 动态调整“增加按钮”和“清空按钮”的位置

def modify(startY):

btnSet.place(x=10, y=startY, width=80, height=20)

btnClear.place(x=100, y=startY, width=80, height=20)

modify(20)

root.mainloop()

代码运行后初始状态为:

单击“增加按钮”后,在弹出的窗口中输入5,然后窗体变为下面的样子:

单击“清空按钮“后恢复到初始状态。

Python+tkinter动态创建与销毁组件小案例相关推荐

  1. python创建类的实例方法-Python中动态创建类实例的方法

    简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模 ...

  2. 树回归--python Tkinter库创建GUI(2)

    简单的Tkinter库创建GUI的例子可参考: http://blog.csdn.net/lilong117194/article/details/78456376 下面是代码: # -*- codi ...

  3. SOUI的一个动态创建控件的小例子

    涉及知识点: 获取可用的屏幕个数以及分辨率 SOUI中的线性布局的使用 SOUI中的动态插入xml的方法(也就是动态的创建控件) 对动态创建出来的控件,进行一个点击事件的注册 目的:获取屏幕个数,生成 ...

  4. 一个mybatis动态 SQL查询的完整小案例。包含多表联合查询。

    多表联合查询 一个根据机场查询航线的例子.有两张表,机场表包含机场信息:机场id.机场名字.机场城市. 航班包含航线信息:航班id.飞机编号.飞行时间.票价.起飞机场id.降落机场id. 需要查询的结 ...

  5. 基于Python+Tkinter GUI 的模式识别水果分类小程序

    采用Python语言编写,并结合Tkinter GUI工具制作交互式小程序开发,实现了简单的水果的边缘提取和分类.如图1-A,用户可以自定义选择路径并输出,同时可以在对话框中输入/输出结果,如图1-B ...

  6. python列表动态添加_在Python中动态创建列表

    我有一堆与不同组关联的项,我最终想为每个组创建一个列表,其中包含所有关联项.在 问题是我不知道有多少组,所以如何动态生成正确数量的列表,以及如何调用它们?在 我在循环item_list和group_l ...

  7. python tkinter实践之制作看视频小软件

    利用tkinter制作一个可视化界面,能够进行选择播放接口,播放某链接的视频(支持优酷,腾讯等多平台),清空搜索框等操作.界面如下所示,代码也如下 import requests import re ...

  8. 入门级用Python + tkinter的打飞机/飞机大战小游戏

    一. 前置:python3.5.pycharm.pygame(pycharm内安装) 二.工程下载链接 点击下载代码(源码+资源文件) https://download.csdn.net/downlo ...

  9. Python+KNN算法判断单词相似度小案例

    本文代码用于判断待测单词与哪个候选单词最接近,判断标准为字母出现频次(直方图)最接近,只考虑了不小心的拼写错误,而没有考虑故意的拼写错误,例如故意把god写成dog,这可能会造成误判.当然误判率与判断 ...

最新文章

  1. 教你打造一个Android组件化开发框架
  2. php类可以遍历,在PHP中检测一个类是否可以被foreach遍历
  3. 外星人台式电脑_谈谈4万人民币的外星人R9台式机值不值得购买
  4. mybatis_user_guide(6) Java API
  5. 前端学习(3133):react-hello-react之高阶函数
  6. (王道408考研操作系统)第三章内存管理-第二节1:虚拟内存管理基本概念
  7. idea 检测 重复代码_IDEA关掉重复代码波浪线
  8. java 处理unicode_java处理unicode字符
  9. 转: Oracle AWR 报告 每天自动生成并发送邮箱
  10. 李炎恢老师的php源码以及附带一个php手册
  11. 阅读ArrayList源码的一些记录
  12. 服务器显示演示版,金蝶软件打开后提示是演示版怎么办?
  13. html5客户端页面,iphoneX 适配客户端H5页面的方法教程
  14. K8S-Kubeadm的安装及原理
  15. 为你的网站添加 htpps
  16. 10+ 条 Go 官方谚语,你知道几条?
  17. 开源的python有限元软件_python有限元
  18. “网管”必备的五大网络数据分析工具
  19. 瑞利分布与卡方分布的联系
  20. 蓝桥云课linux入门13:正则表达式基础

热门文章

  1. 移动互联网的发展趋势ios与android哪更有前景,移动互联网是什么?移动互联网现状,发展趋势及前景...
  2. 系统集成的系统架构图的相关的vsd素材_信息系统集成专业技术知识:软件架构...
  3. java显示毫秒改成分钟_【转】java获取当前年、月、日 、小时 、分钟、 秒、 毫秒...
  4. 如何部署 OB 社区版
  5. 怎么在html使用百度商桥,电脑版网站如何添加爱番番(原:百度商桥)
  6. 自定义Hibernate Validator规则注解
  7. Spring集成JDBC组件开发
  8. Swagger 属性名 FastJson支持,@ApiModelProperty无法序列化
  9. swag您的装置不支持_209P型铁路客车转向架之轮对轴箱弹簧定位装置简介
  10. python入门第二章房贷计算器 打印五子棋棋盘 猜数字 计数器 逢七拍手游戏