学会Python开发的第一步:写一个桌面小程序
前言
嗨喽,大家好呀~这里是爱看美女的茜茜呐
又到了学Python时刻~
当使用桌面应用程序的时候,有没有那么一瞬间,
想学习一下桌面应用程序开发?
建议此次课程大家稍作了解不要浪费太多时间,
因为没有哪家公司会招聘以为Python程序员开发桌面程序吧?
开发环境:
Python 3.6
Python是一种代表简单主义思想的语言。
阅读一个良好的Python程序就感觉像是在读英语一样。
它使你能够专注于解决问题而不是去搞明白语言本身。
Pycharm
PyCharm是一种Python IDE(Integrated Development Environment,集成开发环境),
带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具
比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。
此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。
代码
界面设置
1.导入模块
import tkinter as tk
2.实例化一个窗体对象
root = tk.Tk()
3.标题
root.title('计算器')
4.大小以及出现的位置
root.geometry("295x280+150+150")
5.透明度
root.attributes("-alpha", 0.9)
6.背景
root["background"] = "#ffffff"
7.标签
lable1 = tk.Label(root, textvariable=result_num, width=20, height=2, font=('宋体', 20), justify='left', background='#ffffff', anchor='se')
8.布局
lable1.grid(padx=4, pady=4, row=0, column=0, columnspan=4)
9.按钮
button_clear = tk.Button(root, text='C', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: clear())
button_back = tk.Button(root, text='←', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: back())
button_division = tk.Button(root, text='/', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: operator('/'))
button_multiplication = tk.Button(root, text='x', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: operator('*'))button_clear .grid(padx=4, row=1, column=0)
button_back .grid(padx=4, row=1, column=1)
button_division .grid(padx=4, row=1, column=2)
button_multiplication .grid(padx=4, row=1, column=3)button_seven = tk.Button(root, text='7', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('7'))
button_eight = tk.Button(root, text='8', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('8'))
button_nine = tk.Button(root, text='9', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('9'))
button_subtraction = tk.Button(root, text='—', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: operator('-'))
button_seven .grid(padx=4, row=2, column=0)
button_eight .grid(padx=4, row=2, column=1)
button_nine .grid(padx=4, row=2, column=2)
button_subtraction .grid(padx=4, row=2, column=3)button_four = tk.Button(root, text='4', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('4'))
button_four.grid(padx=4, pady=4, row=3, column=0)
button_five = tk.Button(root, text='5', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('5'))
button_five.grid(padx=4, row=3, column=1)
button_six = tk.Button(root, text='6', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('6'))
button_six.grid(padx=4, row=3, column=2)
button_addition = tk.Button(root, text='+', width=5, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: operator('+'))
button_addition.grid(padx=4, row=3, column=3)button_one = tk.Button(root, text='1', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('1'))
button_one.grid(padx=4, row=4, column=0)
button_two = tk.Button(root, text='2', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('2'))
button_two.grid(padx=4, row=4, column=1)
button_three = tk.Button(root, text='3', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('3'))
button_three.grid(padx=4, row=4, column=2)
button_equal = tk.Button(root, text='=', width=5, height=3, font=('宋体', 16), relief='flat', background='#C0C0C0', command=lambda: equal())
button_equal.grid(padx=4, row=4, rowspan=5, column=3)button_zero = tk.Button(root, text='0', width=12, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('0'))
button_zero.grid(padx=4, pady=4, row=5, column=0, columnspan=2)
button_decimal = tk.Button(root, text='.', width=5, font=('宋体', 16), relief='flat', background='#FFDEAD', command=lambda: append_num('.'))
button_decimal.grid(padx=4, row=5, column=2)
现在得出界面效果
功能
添加数字
def append_num(i):lists.append(i)result_num.set(''.join(lists))
选择运算符号
def operator(i):if len(lists) > 0:if lists[-1] in ['+', '-', '*', '/']:lists[-1] = ielse:lists.append(i)result_num.set(''.join(lists))
清零
def clear():lists.clear()result_num.set(0)
退格
def back():del lists[-1]result_num.set(lists)
等号
def equal():a = ''.join(lists)end_num = eval(a)result_num.set(end_num)lists.clear()lists.append(str(end_num))
定义一个列表收集输入的内容
lists = []
result_num = tk.StringVar()
result_num.set(0)
最后运行代码,效果如下图
先试试
运算得出结果
PS:如有需要Python学习资料的小伙伴可以加下方的群去找免费管理员领取
可以免费领取源码、项目实战视频、PDF文件等
宁外给大家推荐一个好的python教程:
【48小时搞定全套教程!你和大佬只有一步之遥【python教程】
尾语
学会Python开发的第一步:写一个桌面小程序相关推荐
- 使用VS2015 VC++第一步 写一个hello world程序
1.打开VS2015 点击文件->新建->项目 选择Visual C++中的 MFC应用程序(这里我的名称写为first) 2.选择基于对话框 接下来都不需要改什么,直接点击下一步下去就好 ...
- python socket能做什么_用python写一个聊天小程序!和女朋友的专属聊天工具!
原标题:用python写一个聊天小程序!和女朋友的专属聊天工具! 1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可 ...
- 用JAVA写一个画图小程序(JAVA 大作业)
第一次写博客 且是稍微大点的程序 看看就行 重新写的在这,更加清晰明了:点击进入:用JAVA写一个画图小程序(JAVA 大作业)重排版本 设计思路 首先我直接去了Windows自带画图程序去实践模拟, ...
- 手把手教你写一个微信小程序日历组件
今天我们一起写一个微信小程序日历组件 微信小程序日历组件 github.com/749264345/w- 好,我们先看一下要实现的模样,如下图 由以上截图我们可以看到 1.日历可以通过按钮[切换展示效 ...
- python用程序说爱你_用python写一个聊天小程序!和女朋友的专属聊天工具!
1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可以发送封装的IP数据包的方法. Internet的传输层有两个协议 ...
- 用python写一个聊天小程序!和女朋友的专属聊天工具!
1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可以发送封装的IP数据包的方法. PS:如有需要Python学习资料 ...
- 微信小程序+PHP 从零写一个微信小程序
微信小程序是越来越火,参与其中的开发者也越来越多,但是很多朋友都是只懂小程序前端开发,或者是只懂 PHP 开发,本 Chat 就是想让这部分人能够自己一个人把前后端串起来,做一个专属自己的微信小程序. ...
- 用python写一个抽奖小程序_微信小程序抽奖助手一键参与抽奖
写在前头的话 最近"沉迷"于微信一款小程序,就是抽奖助手.反正这个抽奖几乎不用什么成本, 就是一个个抽奖活动点进去点击参与抽奖比较麻烦.要是如果有个程序一键解决这些步骤,那就是零成 ...
- 搭建Spring开发环境并编写第一个Spring小程序
一.前面,我写了一篇Spring框架的基础知识文章,里面没讲到如何配置Spring开发环境,今天就来讲一下,如果大家不知道怎么下载Spring软件包的话,可以看我那篇文章: http://blog.c ...
- 纯 python 开发批量读取照片 Exif 信息的小程序
自己动手写一些小程序解决工作中的问题,是学习 python 的高效途径.这中间会遇到一些不动手想不到的问题,一个一个地解决它们,你 python 开发水平就会突飞猛进! 本文总结一下实战 python ...
最新文章
- .Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译
- 理解Java枚举类型
- nacos如何做配置中心?自带自动刷新配置功能?这一篇文章让你明明白白!
- wxWidgets:wxPen类用法
- MyStringUtil.java String工具类
- 第一次去四川的广东人是什么下场?
- 【CF#931.B】World Cup (思维,模拟)
- linux用java连接mysql_Java使用JDBC方式连接数据库
- Android 系统(216)---Android坐标分析过程
- Log Explorer 使用简介转
- 20170907wdVBA_ImportPicturesBaseOnExcel
- 域名查询服务商的方法
- seo从入门到精通_SEO入门书籍推荐:从入门到精通,新人必看的3本书
- 高德地图又出逆天黑科技!全国各大城市模型直接获取
- 欲望都市游戏设计 背景图层和UI图层的设计
- 前端console.log打印内容与后端请求返回数据不一致
- centos系统使用pptpd搭建在windows客户端的vpn服务器
- 一、Mahony姿态解算——坐标系变换
- asp.net core web 解决方案多项目模板制作打包总结
- Mysql数据库管理工具简介
热门文章
1.打开VS2015 点击文件->新建->项目 选择Visual C++中的 MFC应用程序(这里我的名称写为first) 2.选择基于对话框 接下来都不需要改什么,直接点击下一步下去就好 ...
原标题:用python写一个聊天小程序!和女朋友的专属聊天工具! 1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可 ...
第一次写博客 且是稍微大点的程序 看看就行 重新写的在这,更加清晰明了:点击进入:用JAVA写一个画图小程序(JAVA 大作业)重排版本 设计思路 首先我直接去了Windows自带画图程序去实践模拟, ...
今天我们一起写一个微信小程序日历组件 微信小程序日历组件 github.com/749264345/w- 好,我们先看一下要实现的模样,如下图 由以上截图我们可以看到 1.日历可以通过按钮[切换展示效 ...
1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可以发送封装的IP数据包的方法. Internet的传输层有两个协议 ...
1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可以发送封装的IP数据包的方法. PS:如有需要Python学习资料 ...
微信小程序是越来越火,参与其中的开发者也越来越多,但是很多朋友都是只懂小程序前端开发,或者是只懂 PHP 开发,本 Chat 就是想让这部分人能够自己一个人把前后端串起来,做一个专属自己的微信小程序. ...
写在前头的话 最近"沉迷"于微信一款小程序,就是抽奖助手.反正这个抽奖几乎不用什么成本, 就是一个个抽奖活动点进去点击参与抽奖比较麻烦.要是如果有个程序一键解决这些步骤,那就是零成 ...
一.前面,我写了一篇Spring框架的基础知识文章,里面没讲到如何配置Spring开发环境,今天就来讲一下,如果大家不知道怎么下载Spring软件包的话,可以看我那篇文章: http://blog.c ...
自己动手写一些小程序解决工作中的问题,是学习 python 的高效途径.这中间会遇到一些不动手想不到的问题,一个一个地解决它们,你 python 开发水平就会突飞猛进! 本文总结一下实战 python ...