在本教程中 我们将通过使用Tkinter包编写一些python GUI示例来学习如何开发图形用户界面。 Tkinter包是作为标准包随Python一起提供的 所以我们不需要安装任何东西来使用它。 Tkinter包是一个非常强大的包。如果已

在本教程中,我们将通过使用Tkinter包编写一些python GUI示例来学习如何开发图形用户界面。

Tkinter包是作为标准包随Python一起提供的,所以我们不需要安装任何东西来使用它。

Tkinter包是一个非常强大的包。如果已经安装了Python,那么可以使用IDLE,它是Python附带的集成IDE,这个IDE是用Tkinter编写的。听起来很酷!!

我假设您对Python基础知识有一点了解,以帮助您理解我们正在做什么。

我们将从创建一个窗口开始,然后学习如何添加小部件,如按钮、组合框等,然后使用它们的属性,让我们开始吧。

案例说明

现在,通过一个简易的用户登录窗口的实现,快速上手tkinter。

可以在登录窗口输入用户名、密码进行登录,用户名、密码符合要求,则显示OK消息,反之则显示Error消息。如下面图片所示:

image

image

image

熟悉常用的基本组件

俗话说“磨刀不误砍柴工”,在进行案例代码编写前,先花点时间完成下面6个代码段的练习,熟悉这些基本组件的使用方法。

定义并显示主窗口

#?导入tkinter库

import?tkinter

window?=?tkinter.Tk()

#?设置窗口title

window.title('my?window')

#?设置窗口大小

window.geometry('200x120')

#?显示主窗口

window.mainloop()

运行结果如下:

image

lable标签

import?tkinter

window?=?tkinter.Tk()

window.title('my?window')

window.geometry('200x180')

l?=?tkinter.Label(window,

????text='This?is?Label!',????#?标签的文字

????bg='pink',?????#?背景颜色

????font=('Arial',?12),?????#?字体和字体大小

????width=15,?height=2??#?标签长宽

????)

#?固定窗口位置

l.pack()

window.mainloop()

运行结果如下:

image

pack&grid&place 组件布局

import?tkinter

window?=?tkinter.Tk()

window.title('my?window')

window.geometry('200x180')

#?pack布局

l1?=?tkinter.Label(window,text='This?is?Label!',bg='pink',width=15,?height=2)

l1.pack(side='bottom')

#?grid布局

#?for?i?in?range(4):

#?????for?j?in?range(3):

#?????????tkinter.Label(window,?text=1).grid(row=i,??#?行

#????????????????????????????????????????????column=j,??#?列

#????????????????????????????????????????????padx=10,??#?单元格左右间距

#????????????????????????????????????????????pady=10??#?单元格上下间距

#????????????????????????????????????????????)

###?place布局

l2?=?tkinter.Label(window,?text='This?is?Label2!',?justify=tkinter.RIGHT,?width=50)

l2.place(x=40,?y=50,???#?设置x,y坐标

?????????width=100,?height=30??#?设置长宽

?????????)

window.mainloop()

运行结果如下:

image

注释pack布局代码,去除grid布局代码注释,然后运行,运行结果如下:

image

Button按钮

import?tkinter

window?=?tkinter.Tk()

window.title('my?window')

window.geometry('200x120')

#?定义button

b?=?tkinter.Button(window,

???????????????????text='退出',??#?按钮的文字

???????????????????bg='pink',??#?背景颜色

???????????????????width=15,?height=2,??#?设置长宽

???????????????????command=window.quit??#?响应事件:关闭窗口

???????????????????)

b.pack()

window.mainloop()

运行结果如下:

image

2.5. Entry&Text输入框与文本框

import?tkinter

window?=?tkinter.Tk()

window.title('my?window')

window.geometry('200x200')

def?plus():

????n1?=?e1.get()??#?获取输入框1的值

????n2?=?e2.get()??#?获取输入框2的值

????t.delete(1.0,?'end')??#?清除文本框内容

????t.insert('insert',?int(n1)+int(n2))??#?将结果添加到文本框显示

l1?=?tkinter.Label(window,?text='输入数字1')

l1.pack()

#?定义输入框1

e1?=?tkinter.Entry(window,?width=15)

e1.pack()

#?定义输入框2

l2?=?tkinter.Label(window,?text='输入数字2')

l2.pack()

e2?=?tkinter.Entry(window,?width=15)

e2.pack()

b1?=?tkinter.Button(window,?text="计算两数之和",?command=plus)

b1.pack()

#?定义文本框

t?=?tkinter.Text(window,?

?????????????????state='normal',??#?有disabled、normal?两个状态值,默认为normal

?????????????????width=15,?height=2

?????????????????)

t.pack()

b2?=?tkinter.Button(window,?text='退出',?command=window.quit)

b2.pack()

window.mainloop()

运行结果如下:

image

messagebox消息对话框

import?tkinter

import?tkinter.messagebox

window?=?tkinter.Tk()

window.title('my?window')

window.geometry('200x100')

def?say_hello():

????tkinter.messagebox.showinfo(title='my?message',?message='hello!')

#?定义消息对话框

b?=?tkinter.Button(window,?text="click",?command=say_hello)

b.pack()

window.mainloop()

运行结果如下:

image

image

案例代码实现

import?tkinter

import?tkinter.messagebox

#?用户登录验证

def?login():

????name?=?entryName.get()

????pwd?=?entryPwd.get()

????if?name?==?'admin'?and?pwd?==?'123456':

????????tkinter.messagebox.showinfo(title='userlogin',?message='ok')

????else:

????????tkinter.messagebox.showerror(title='userlogin',?message='Error')

#?清空用户输入的用户名和密码

def?cancel():

????varName.set('')

????varPwd.set('')

window?=?tkinter.Tk()

window.title('my?window')

window.geometry('200x120')

varName?=?tkinter.StringVar(value='')

varPwd?=?tkinter.StringVar(value='')

#?创建标签

labelName?=?tkinter.Label(window,?text='User?Name',?justify=tkinter.RIGHT,?width=80)

#?将标签放到窗口上

labelName.place(x=10,?y=5,?width=80,?height=20)

#?创建文本框,并设置关联的变量

entryName?=?tkinter.Entry(window,?width=80,?textvariable=varName)

entryName.place(x=100,?y=5,?width=80,?height=20)

labelPwd?=?tkinter.Label(window,?text='User?Pwd:',?justify=tkinter.RIGHT,?width=80)

labelPwd.place(x=10,?y=30,?width=80,?height=20)

#?创建密码文本框

entryPwd?=?tkinter.Entry(window,?show='*',?width=80,?textvariable=varPwd)

entryPwd.place?(x=100,?y=30,?width=80,?height=20)

#?创建按钮组件,同时设置按钮事件处理函数

buttonOk?=?tkinter.Button(window,?text='Login',?command=login)

buttonOk.place(x=30,?y=70,?width=50,?height=20)

buttonCancel?=?tkinter.Button(window,?text='Cancel',?command=cancel)

buttonCancel.place(x=90,?y=70,?width=50,?height=20)

#?启动消息循环

window?.mainloop()

文章来源 :p_l_l

https://www.jianshu.com/p/58b047f3985d

- EOF -

推荐阅读??点击标题可跳转

Python100行-贪吃蛇小游戏

用python打包exe应用程序-PyInstaller

20行python代码的入门级小游戏

10行python代码做出哪些酷炫的事情?

一行Python代码能做出哪些神器的事情

都来到这了,拜托拜托点个赞

以上信息来源于网络,如有侵权,请联系站长删除。

python网站有中文界面吗_手把手教你用python开发界面程序相关推荐

  1. python刷题一亩三分地_手把手教你用python抓网页数据【一亩三分地论坛数据科学版】...

    前言:. visit 1point3acres.com for more. 数据科学越来越火了,网页是数据很大的一个来源.最近很多人问怎么抓网页数据,据我所知,常见的编程语言(C++,java,pyt ...

  2. python爬取音乐源码_手把手教你使用Python抓取QQ音乐数据(第一弹)

    [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二.需要的库] 主要涉及的库有:requests.json ...

  3. python抢票用哪个库_手把手教你使用python抢票回家玩

    电脑终端查看电脑上已有环境 conda env list 创建一个独立环境 conda create --name textenv 进入这个环境 source activate textenv 安装p ...

  4. 手把手教你入侵网站修改数据_手把手教你使用Python抓取QQ音乐数据(第四弹)...

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  5. python numpy安装教程_手把手教你搭建机器学习开发环境—Python与NumPy的超简安装教程...

    手把手教你搭建机器学习开发环境Python语言是机器学习的基础,所以,想要入门机器学习,配置好Python的开发环境是第一步.本文就手把手的教你配置好基于Python的机器学习开发环境.超简单!第一步 ...

  6. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  7. python爬虫爬取房源_手把手教你用Python网络爬虫爬取新房数据

    项目背景 大家好,我是J哥. 新房数据,对于房地产置业者来说是买房的重要参考依据,对于房地产开发商来说,也是分析竞争对手项目的绝佳途径,对于房地产代理来说,是踩盘前的重要准备. 今天J哥以「惠民之家」 ...

  8. python爬取qq音乐歌曲链接为什么播放不出来_手把手教你使用Python抓取QQ音乐数据(第一弹)...

    原标题:手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. ...

  9. 如何用python抓取qq音乐_手把手教你使用Python抓取QQ音乐数据(第三弹)-阿里云开发者社区...

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

最新文章

  1. java验证码源码_Java通用验证码程序及应用示例(提供源码下载)
  2. php异常处理方式,PHP异常处理办法
  3. 端到端训练 联合训练_曲靖两家银行举行联合军事拓展训练 献礼祖国71周年华诞...
  4. J钓鱼 (vector + queue)
  5. 服务高可用:幂等性设计
  6. Xcode 4.2 中的Automatic Reference Counting (ARC)
  7. Android UI开发第三十二篇——Creating a Navigation Drawer
  8. Python 入门演示 1
  9. 冒泡排序代码(升序+降序)
  10. C盘Administrator中 .m2/repository里面是什么
  11. 线上生成电子签名具体方法
  12. linux vi指令选则从某行到某行注释,详解linux vi命令用法
  13. Linux命令删除find,浅谈Linux下通过find命令进行rm文件删除的小技巧
  14. SAP调用外围系统接口SXI_MONITOR有显示但是实际上没有调用接口的问题
  15. 智能文档控制——文档的智能归档、捕获、索引、访问和协作
  16. GPL和MIT开源协议
  17. Tomcat 配置集锦
  18. C++实现黑白棋算法
  19. 看李俊超老师SEO视频教程 全程笔记
  20. Non-Local Neural Networks

热门文章

  1. scheduledexecutorservice 只执行一次_一个ScheduledExecutorService启动的Java线程无故挂掉引发的思考...
  2. 在Linux中切换用户的命令是set,Linux基础命令---切换用户su
  3. 时域信号matlab实现
  4. java EE 监听器
  5. linux 下安装ftp服务器
  6. 第二章《深入C#数据类型》项目经理评分
  7. 链接属性rel=’external’、rel=’nofollow’、rel=’external nofollow’三种写法的区别...
  8. 名片大全:30款精美的企业名片设计欣赏
  9. js 值类型和引用类型
  10. 【慢慢学Android】:11.对话框大全