资讯专栏INFORMATION COLUMN

Python又把GUI界面攻下了,今天就告诉你怎么玩

SunZhaopeng / 3422人阅读

摘要:引言学这么久了,一直想做个界面出来,最近发现有个内置库,利用它可以很轻松做出一些简易的界面,首先来看官方对的说明从上面描述中我们不难看出,不管你是系统,还是系统,它都可以生成相对应的操作界面,这就是所谓的跨平台。

0.引言

学Python这么久了,一直想做个界面出来,最近发现Python有个内置库tkinter,利用它可以很轻松做出一些简易的UI界面,首先来看Python官方对Tkinter的说明:

The tkinter package (“Tk interface”) is the standard Python interface to the Tk GUI toolkit. Both Tk and tkinter are available on most Unix platforms, as well as on Windows systems.

从上面描述中我们不难看出,不管你是 Mac OS 系统,还是 Windows 系统,它都可以生成相对应的操作界面,这就是所谓的跨平台。

1.调用关系说明

其原理就是我们使用 Python代码去调用 Tkinter, Tkinter 已经封装了访问TK的接口,这个接口是一个图形库,支持多跨平台操作系统,进而通过它,我们就可以调用我们系统本身的GUI接口了。

2.环境

操作系统:Windows / Linux / Mac OS

Python版本:3.6.6

3.小试牛刀

有了概念并了解原理之后,接下来就小试牛刀一下~

import tkinter
# 定义一个窗体
top = tkinter.Tk()
# 将其加入主循环
top.mainloop()


运行一下,biu~,三行代码就把一个窗口弹出来了,有没有很神奇~

4.中试牛刀

接下来我们要来点复杂的:

import tkinter as tk
import tkinter.messagebox as mbox


# 定义MainUI类表示应用/窗口,继承Frame类
class MainUI(tk.Frame):
    # Application构造函数,master为窗口的父控件
    def __init__(self, master = None):
        # 初始化Application的Frame部分 
        tk.Frame.__init__(self, master)
        # 显示窗口,并使用grid布局
        self.grid()
        # 创建控件
        self.createWidgets()


    # 创建控件
    def createWidgets(self):
        # 创建一个标签,输出要显示的内容
        self.firstLabel = tk.Label(self,text="「人人都是Pythonista」专注Python领域,做最专业的Python星球。")
        # 设定使用grid布局
        self.firstLabel.grid()
        # 创建一个按钮,用来触发answer方法
        self.clickButton = tk.Button(self,text="点一下瞧瞧?",command=self.answer)
        # 设定使用grid布局
        self.clickButton.grid()


    def answer(self):
        # 我们通过 messagebox 来显示一个提示框
        mbox.showinfo("「人人都是Pythonista」","""
        这是一个专注Python的星球,我们提供「从零单排」、「实战项目」、「大航海」、「技术沙龙」、「技术分享」、「大厂内推」等系列供你选择及学习,当然也会有周边技术沿伸。
        本星球会不定期开展各类实战项目,阶段性组织线上技术沙龙、分享等;对于职业发展路线不明确的,我们会邀请到一些大厂hr及高级开发、经理等给大家解惑。
        加入我们,和千人一起玩Python,To be a Pythonista!
        """)


# 创建一个MainUI对象
app = MainUI()
# 设置窗口标题
app.master.title("「人人都是Pythonista」")
# 设置窗体大小
app.master.geometry("400x100")
# 主循环开始
app.mainloop()

在这里:

我们导入了 tkinter 的相关模块

定义了初始化函数,通过 grid() 方法将我们的组件传给父容器

自定义一个创建组件的方法,我们创建了一个标签和一个按钮,这个按钮被点击后就会触发 answer这个方法

我们通过 messagebox 来显示一个提示框

实例化我们的 APP,然后通过主线程来监听我们的界面操作

运行后如下:

5.总结

想要做出漂亮的UI界面,还是需要深入地学习下Tkinter这个模块。上文中的我们只用到了框架、按钮、标签、文本这四种控件,而在Tkinter中给我们提供了15种控件供大家使用。

此外Tkinter控件布局有三种方式:包装pack()、网格grid()、位置place(),本文中选用了grid,大家也可以逐一尝试下有什么区别,期待大家的大试牛刀~

关注公众号「Python专栏」,后台回复关键字:zsxq03,获取本文全部代码

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43378.html

相关文章

  • Python的门面担当 - Tkinter

    摘要:在这个窗口之上,可以添加各种输入框按钮文本等,可以增加对各种动作的处理。事件要与特定的控件相绑定,比如按钮有点击事件,输入框有按键事件,窗体有关闭事件等。 在大多数时候,我们都在黑黢黢的控制台里执行 Python 脚本。这看起来很酷很 GEEK。但对于部分场景下的用户来说,这样就不大美观和人性化了:我们需要交互更方便的图形化产品,也就是 GUI (图形用户界面,Graphical Us...

    Lucky_Boy 评论0 收藏0
  • 不要迷恋我,我只是利用Python修改游戏内存

    摘要:上篇文章我许了一个愿,就是想让大家多多关注我,然后我的粉丝就蹭蹭的涨了好几百,谢谢大家的厚爱。可是我发现粉丝是涨了,三连变少了,谢谢大家这次给我三连,我一定再接再厉。地址的寻找阳光总值,种植一个豌豆需要,非常不够用。 目录 前言 游戏的安装 思路       一句话总结       大概的思...

    ermaoL 评论0 收藏0
  • Python数据科学环境:Anaconda 解一下

    摘要:我自己印象最深的是在上安装加密和科学计算模块,折腾了很久。这个精装是面向数据科学的,同时也保留了你自己进一步改装的空间。数据科学库包环境管理工具,这几样就是的主要功能。 几乎所有的 Python 学习者都遇到过 安装 方面的问题。这些安装问题包括 Python 自身环境的安装、第三方模块的安装、不同版本的切换,以及不同平台、版本间的兼容问题 等。当你因为这些问题而卡壳,一行代码没写就已...

    shaonbean 评论0 收藏0

发表评论

0条评论

SunZhaopeng

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<