.net中button按钮点击之后的两个参数是什么意思_如果想完成更加有意思和强大的程序,你应该这么做...
好嘴头子,不如烂笔头子,讲了这么些理论,不动手试试是不行的!
请点击右上角“关注”按钮关注我们哟:跟着木辛老师学习Python编程知识,变身快乐的编程达人吧~
大家好,木辛老师又来了!
关于Tkinter,咱们已经有所了解,那么,是不是可以牛刀小试一下了呢?
完全可以!至少今天这节课咱们能看看Tkinter的最简单实现。
俗话说,好嘴头子,不如烂笔头子。理论千千万万,实践第一条。让我们开始吧!
好多人刚开始学习编程的时候,都会从“Hello world”开始。
木辛老师当初也没少做各种语言版本的“Hello world”,这节课咱们就来做一个Tkinter的“Hello World”吧。
刚开始接触图形化编程的时候,大家是不是心里都很发憷。
这窗口怎么实现?
窗口大小怎么控制?
按钮怎么放到窗口上?
点击按钮之后会发生什么?
之前写了这么多代码竟然不知道如何下手。
不用着急,使用“高级”语言编写图形化程序,你不需要关注太多底层的知识,只需要简单的调用语言或者说它的库提供的接口就可以了。
为什么说是“高级”语言呢?
因为很多语言也许只需要一行代码就可以实现特别复杂的图形效果,不是说这一行代码有多牛,而是有非常大量的函数或者方法被封装到一起,并且提供了这个接口而已。
这就是”高级“的所在。
看不到,不代表不存在,也许再往前看看,就能瞧见!
好了,这些细节就不多说了,有些细节是不需要太深入研究的。毕竟知识浩如烟海,而人的精力是有限的,只需要掌握对自己有用的就可以了。
不知道如何下手图形化编程的同学可以坐好听讲了。
我们通过Tkinter实现一个简单的窗口来不如图形化编程的殿堂吧。
“快点打开编辑器,编写程序还没达到使用意念来实现的地步!”
然后呢,在你的编辑器里输入如下代码:
import tkinter as tkclass Application(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.master.title('第一个例子') self.pack() self.create() def create(self): self.label = tk.Label(self, text="欢迎来到木辛老师的编程课堂") self.label.pack(side="top", expand=1, padx=100, pady=80) self.btn = tk.Button(self) self.btn["text"] = "打声招呼" self.btn["command"] = self.say_hi self.btn.pack(side="top") self.quit = tk.Button(self, text="退出", fg="red", command=self.master.destroy) self.quit.pack(side="bottom") def say_hi(self): print("快乐编程,快乐成长!")root = tk.Tk()app = Application(master=root)app.mainloop()
如果你使用的PyCharm的话,请右键点击这个文件,运行程序。
看看执行效果吧。
咦!是不是很好玩?
之前编写了很多Python程序,是不是都是黑洞洞的输出字符。通过Tkinter编写的程序给人一种眼前亮闪闪的感觉?
图形化编程就是这么有趣。
接下来,木辛老师带着大家简单讲解一下这个程序。这里呢,有一些知识你可能不能深刻体会,在今后的内容里,木辛老师会慢慢深入讲解的。大家敬请期待之后的课程呀!
首先,使用Tkinter库编程,需要先将他导入进来。
然后,我们创建了一个Application类,作为tk.Frame的子类,这样就可以直接使用tk.Frame很多属性和方法了。
使用__init__()方法初始化这个类,这里可以做很多事情,比如告诉父类,我们将要使用你的属性和方法了,不要吝啬哟。
super().__init__(master)
我们在这个类外边实例化了Tk()类,将这个实例传进来了,这样就可以使用tk的一些方法,比如
self.master.title('第一个例子')self.pack()
再往后,开始往这个“大盘子”上堆放控件了。
通过create()自定义函数,调用控件的创建。
第一个创建的是一个Label,用来显示内容的只读控件
self.label = tk.Label(self, text="欢迎来到木辛老师的编程课堂")self.label.pack(side="top", expand=1, padx=100, pady=80)
在这里我们都做了什么呢?
- 显示文本内容:欢迎来到木辛老师的编程课堂
- 告诉这个标签位于窗口的顶端(side=“top”),expand这个参数可以先放放,之后的内容会讲到。
- 使用padx和pady,只是用来撑开窗口的,并没有实际用处。简单来讲就是,padx告诉系统这个label水平方向上窗口边框距离label要保持padx的间距;pady则是竖直方向上的间距。
- 同时pack方法将这个label”粘“到主窗口上,这样咱们就可以看到这个label了。
- 同理,再创建两个按钮:self.btn和self.quit。唯一不同的是使用command方式关联上事件,这样,点击按钮就会产生反应了。
- 比如,点击self.btn按钮,就会触发self.say_hi()方法,也就是执行print()打印出:快乐编程,快乐成长!
代码的最后,通过
root = tk.Tk()app = Application(master=root)
实例化了Tk和Application这个类,继而调用app的主循环
app.mainloop()
至此,你就可以看到一个窗口了。
就这样,一个带有文本显示和按钮交互的窗口程序就做完了,是不是非常简单。接下来就可以往窗口上对切各种控件,实现更复杂的功能了。
当然了,制作一款实用的图形化程序,还是需要很多知识的,咱们慢慢学习,慢慢练习就好了。
如果想完成更加有意思和强大的程序该怎么学呢?
赶紧的订阅木辛老师的专栏学习呗!↓↓↓↓↓↓↓
.net中button按钮点击之后的两个参数是什么意思_如果想完成更加有意思和强大的程序,你应该这么做...相关推荐
- Android Listview中Button按钮点击事件冲突解决办法
今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...
- Python中Button按钮组件常用的属性及参数设置
Python中Button按钮组件常用的属性及参数设置 本篇文章中小编给大家介绍Button按钮组件的相关常用的属性以及参数的设置. 一. 常用属性使用语法 变量=Button(父容器(根窗口),参数 ...
- java添加按钮点击事件_如何为odoo 10中的按钮点击事件添加一个java脚本处理程序?...
我想使用java脚本为header中的按钮创建一个处理程序.下面我视图模型给出:如何为odoo 10中的按钮点击事件添加一个java脚本处理程序? inherit_id="web.asset ...
- layui button按钮点击导致页面重新刷新的解决方案
layui button按钮点击导致页面重新刷新的解决方案 参考文章: (1)layui button按钮点击导致页面重新刷新的解决方案 (2)https://www.cnblogs.com/bamb ...
- css button按钮点击或者划过背景色填充
css button按钮点击或者划过背景色填充 不会录制动图反正就是这个意思 下面是html <a class="btn" href="#">< ...
- 在html中搜索按钮事件,html中button绑定点击事件的几种方法介绍
HTML中为button绑定事件的方式有三种. 例如以下标签: submit 一.使用jquery进行绑定$('#btn_submit').click(function(){ }); 二.使用原生js ...
- layui中实现按钮点击事件
首先,小编要告诉大家一个残酷的现实,那就是小编没有找到layui对点击事件的支持- 这里的点击事件是指单纯的点击事件,而不是提交事件,或者是数据表格中内嵌的button,对于这两者,layui是有la ...
- android 按钮图片切换动画效果,Button按钮点击图片切换效果
Button按钮图片切换效果设置. 通常在工程中用到图片按钮点击事件,大多都用ImageButton.在这里我们用 Button的点击事件,在图片的切换过程中不再通过setBackgroundReso ...
- asp.net 中Button按钮失效问题解决办法
在asp.net页面中,有时候Button按钮会失效,根据经验,导致整个问题发生一般有两种可能性: 一.页面中添加了验证控件,对于这种情况,需要对Button及其相关联的验证控件的Validation ...
最新文章
- LINUX系统管理员技术(Admin)-------第三天
- php连接redis 主从复制,redis怎么进行主从复制
- 利用data store在不同模型中传递数据
- 【队列】【225. 用队列实现栈】【简单】
- destroy 方法_线程方法destroy()和stop(Throwable)在JDK 11中删除
- Portal-Basic Java Web 应用开发框架:应用篇(八) —— 整合 Freemarker
- leetcode 746 python 动态规划
- Java编程语言下 Selenium 驱动各个浏览器代码
- 网站seo优化到底该怎么做?
- npm 报错 426 Upgrade Required
- Recorder丨Unity官方录屏插件使用介绍
- SQL函数---SQL UCASE()
- eclipse的光标变粗,及其解决办法
- FRP (高性能反向代理应用)
- 微型计算机的运算器控制器及内存,计算机的运算器、控制器及内存储器统称为什么?...
- Kalevitch and Chess(翻译 day 4)
- 模拟除法计算|L1-046 整除光棍 (20分)(思路)
- 可视化实验十一:利用Python绘制气泡图、雷达图
- 安装loadrunner11,出现提示缺少vc2005_sp1_with_atl...的问题解决
- ip地址转换数字函数 iton_3. IP地址转换函数
热门文章
- 对于已有的【寄存】代码,【式样】变更,【参照】其他代码修正时的注意事项!
- Linux中修改PATH环境变量(只在当前窗口下生效)
- 关于Eclipse中各个文件(*.java *.jsp *.xml)文字大小的设定。
- JavaWeb项目启动时,tomcat会启动两次的原因(之一)和解决方案
- 在less中不能正常使用css3的calc属性的解决方法
- 连接不上sql server服务器的解决方案
- 以整体思维看问题:解决单页应用,系统角色请求覆盖身份唯一标识(本项目中是session_id命名的)发送请求问题
- 如何基于AngularJS部分视图动态更改标头?
- 在Java中从字符串中删除空格
- 将当前的Git分支设为主分支