好嘴头子,不如烂笔头子,讲了这么些理论,不动手试试是不行的!

请点击右上角“关注”按钮关注我们哟:跟着木辛老师学习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)

在这里我们都做了什么呢?

  1. 显示文本内容:欢迎来到木辛老师的编程课堂
  2. 告诉这个标签位于窗口的顶端(side=“top”),expand这个参数可以先放放,之后的内容会讲到。
  3. 使用padx和pady,只是用来撑开窗口的,并没有实际用处。简单来讲就是,padx告诉系统这个label水平方向上窗口边框距离label要保持padx的间距;pady则是竖直方向上的间距。
  4. 同时pack方法将这个label”粘“到主窗口上,这样咱们就可以看到这个label了。
  5. 同理,再创建两个按钮:self.btn和self.quit。唯一不同的是使用command方式关联上事件,这样,点击按钮就会产生反应了。
  6. 比如,点击self.btn按钮,就会触发self.say_hi()方法,也就是执行print()打印出:快乐编程,快乐成长!

代码的最后,通过

root = tk.Tk()app = Application(master=root)

实例化了Tk和Application这个类,继而调用app的主循环

app.mainloop()

至此,你就可以看到一个窗口了。

就这样,一个带有文本显示和按钮交互的窗口程序就做完了,是不是非常简单。接下来就可以往窗口上对切各种控件,实现更复杂的功能了。

当然了,制作一款实用的图形化程序,还是需要很多知识的,咱们慢慢学习,慢慢练习就好了。

如果想完成更加有意思和强大的程序该怎么学呢?

赶紧的订阅木辛老师的专栏学习呗!↓↓↓↓↓↓↓

.net中button按钮点击之后的两个参数是什么意思_如果想完成更加有意思和强大的程序,你应该这么做...相关推荐

  1. Android Listview中Button按钮点击事件冲突解决办法

    今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...

  2. Python中Button按钮组件常用的属性及参数设置

    Python中Button按钮组件常用的属性及参数设置 本篇文章中小编给大家介绍Button按钮组件的相关常用的属性以及参数的设置. 一. 常用属性使用语法 变量=Button(父容器(根窗口),参数 ...

  3. java添加按钮点击事件_如何为odoo 10中的按钮点击事件添加一个java脚本处理程序?...

    我想使用java脚本为header中的按钮创建一个处理程序.下面我视图模型给出:如何为odoo 10中的按钮点击事件添加一个java脚本处理程序? inherit_id="web.asset ...

  4. layui button按钮点击导致页面重新刷新的解决方案

    layui button按钮点击导致页面重新刷新的解决方案 参考文章: (1)layui button按钮点击导致页面重新刷新的解决方案 (2)https://www.cnblogs.com/bamb ...

  5. css button按钮点击或者划过背景色填充

    css button按钮点击或者划过背景色填充 不会录制动图反正就是这个意思 下面是html <a class="btn" href="#">< ...

  6. 在html中搜索按钮事件,html中button绑定点击事件的几种方法介绍

    HTML中为button绑定事件的方式有三种. 例如以下标签: submit 一.使用jquery进行绑定$('#btn_submit').click(function(){ }); 二.使用原生js ...

  7. layui中实现按钮点击事件

    首先,小编要告诉大家一个残酷的现实,那就是小编没有找到layui对点击事件的支持- 这里的点击事件是指单纯的点击事件,而不是提交事件,或者是数据表格中内嵌的button,对于这两者,layui是有la ...

  8. android 按钮图片切换动画效果,Button按钮点击图片切换效果

    Button按钮图片切换效果设置. 通常在工程中用到图片按钮点击事件,大多都用ImageButton.在这里我们用 Button的点击事件,在图片的切换过程中不再通过setBackgroundReso ...

  9. asp.net 中Button按钮失效问题解决办法

    在asp.net页面中,有时候Button按钮会失效,根据经验,导致整个问题发生一般有两种可能性: 一.页面中添加了验证控件,对于这种情况,需要对Button及其相关联的验证控件的Validation ...

最新文章

  1. LINUX系统管理员技术(Admin)-------第三天
  2. php连接redis 主从复制,redis怎么进行主从复制
  3. 利用data store在不同模型中传递数据
  4. 【队列】【225. 用队列实现栈】【简单】
  5. destroy 方法_线程方法destroy()和stop(Throwable)在JDK 11中删除
  6. Portal-Basic Java Web 应用开发框架:应用篇(八) —— 整合 Freemarker
  7. leetcode 746 python 动态规划
  8. Java编程语言下 Selenium 驱动各个浏览器代码
  9. 网站seo优化到底该怎么做?
  10. npm 报错 426 Upgrade Required
  11. Recorder丨Unity官方录屏插件使用介绍
  12. SQL函数---SQL UCASE()
  13. eclipse的光标变粗,及其解决办法
  14. FRP (高性能反向代理应用)
  15. 微型计算机的运算器控制器及内存,计算机的运算器、控制器及内存储器统称为什么?...
  16. Kalevitch and Chess(翻译 day 4)
  17. 模拟除法计算|L1-046 整除光棍 (20分)(思路)
  18. 可视化实验十一:利用Python绘制气泡图、雷达图
  19. 安装loadrunner11,出现提示缺少vc2005_sp1_with_atl...的问题解决
  20. ip地址转换数字函数 iton_3. IP地址转换函数

热门文章

  1. 对于已有的【寄存】代码,【式样】变更,【参照】其他代码修正时的注意事项!
  2. Linux中修改PATH环境变量(只在当前窗口下生效)
  3. 关于Eclipse中各个文件(*.java *.jsp *.xml)文字大小的设定。
  4. JavaWeb项目启动时,tomcat会启动两次的原因(之一)和解决方案
  5. 在less中不能正常使用css3的calc属性的解决方法
  6. 连接不上sql server服务器的解决方案
  7. 以整体思维看问题:解决单页应用,系统角色请求覆盖身份唯一标识(本项目中是session_id命名的)发送请求问题
  8. 如何基于AngularJS部分视图动态更改标头?
  9. 在Java中从字符串中删除空格
  10. 将当前的Git分支设为主分支