好嘴头子,不如烂笔头子,不动手试试怎么知道自己原来这么强!


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


请点击右上角“关注”按钮关注我们哟:跟着木辛老师学习Python编程知识,变身快乐的编程达人吧~


好嘴头子,不如烂笔头子,不动手试试怎么知道自己原来这么强!


大家好,木辛老师又来了!

关于Tkinter,咱们已经有所了解,那么,是不是可以牛刀小试一下了呢?

完全可以!至少今天这节课咱们能看看Tkinter的最简单实现。

俗话说,好嘴头子,不如烂笔头子。理论千千万万,实践第一条。让我们开始吧!


好多人刚开始学习编程的时候,都会从“Hello world”开始。

木辛老师当初也没少做各种语言版本的“Hello world”,这节课咱们就来做一个Tkinter的“Hello World”吧。


刚开始接触图形化编程的时候,大家是不是心里都很发憷。

这窗口怎么实现?

窗口大小怎么控制?

按钮怎么放到窗口上?

点击按钮之后会发生什么?

之前写了这么多代码竟然不知道如何下手。


好嘴头子,不如烂笔头子,不动手试试怎么知道自己原来这么强!


不用着急,使用“高级”语言编写图形化程序,你不需要关注太多底层的知识,只需要简单的调用语言或者说它的库提供的接口就可以了。

为什么说是“高级”语言呢?

因为很多语言也许只需要一行代码就可以实现特别复杂的图形效果,不是说这一行代码有多牛,而是有非常大量的函数或者方法被封装到一起,并且提供了这个接口而已。

这就是”高级“的所在。


看不到,不代表不存在,也许再往前看看,就能瞧见!


好嘴头子,不如烂笔头子,不动手试试怎么知道自己原来这么强!


好了,这些细节就不多说了,有些细节是不需要太深入研究的。毕竟知识浩如烟海,而人的精力是有限的,只需要掌握对自己有用的就可以了。


不知道如何下手图形化编程的同学可以坐好听讲了。


我们通过Tkinter实现一个简单的窗口来不如图形化编程的殿堂吧。

“快点打开编辑器,编写程序还没达到使用意念来实现的地步!”

然后呢,在你的编辑器里输入如下代码:

<code>import tkinter as tk


class 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()/<code>


如果你使用的PyCharm的话,请右键点击这个文件,运行程序。

看看执行效果吧。

好嘴头子,不如烂笔头子,不动手试试怎么知道自己原来这么强!


咦!是不是很好玩?

之前编写了很多Python程序,是不是都是黑洞洞的输出字符。通过Tkinter编写的程序给人一种眼前亮闪闪的感觉?

图形化编程就是这么有趣。


接下来,木辛老师带着大家简单讲解一下这个程序。这里呢,有一些知识你可能不能深刻体会,在今后的内容里,木辛老师会慢慢深入讲解的。大家敬请期待之后的课程呀!


首先,使用Tkinter库编程,需要先将他导入进来。

然后,我们创建了一个Application类,作为tk.Frame的子类,这样就可以直接使用tk.Frame很多属性和方法了。

使用__init__()方法初始化这个类,这里可以做很多事情,比如告诉父类,我们将要使用你的属性和方法了,不要吝啬哟。

<code>super().__init__(master)/<code> 

我们在这个类外边实例化了Tk()类,将这个实例传进来了,这样就可以使用tk的一些方法,比如

<code>self.master.title('第一个例子')
self.pack()/<code>

再往后,开始往这个“大盘子”上堆放控件了。

通过create()自定义函数,调用控件的创建。

第一个创建的是一个Label,用来显示内容的只读控件

<code>self.label = tk.Label(self, text="欢迎来到木辛老师的编程课堂")
self.label.pack(side="top", expand=1, padx=100, pady=80)/<code>

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

  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()打印出:快乐编程,快乐成长!


代码的最后,通过

<code>root = tk.Tk()
app = Application(master=root)/<code>

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

<code>app.mainloop()/<code>

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


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


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


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


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



同学们不要忘记关注我们哟 ,下期课程更精彩,请大家一起期待吧~


快乐编程,快乐成长,拜拜!


分享到:


相關文章: