前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

又到了学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开发的第一步:写一个桌面小程序相关推荐

  1. 使用VS2015 VC++第一步 写一个hello world程序

    1.打开VS2015 点击文件->新建->项目 选择Visual C++中的 MFC应用程序(这里我的名称写为first) 2.选择基于对话框 接下来都不需要改什么,直接点击下一步下去就好 ...

  2. python socket能做什么_用python写一个聊天小程序!和女朋友的专属聊天工具!

    原标题:用python写一个聊天小程序!和女朋友的专属聊天工具! 1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可 ...

  3. 用JAVA写一个画图小程序(JAVA 大作业)

    第一次写博客 且是稍微大点的程序 看看就行 重新写的在这,更加清晰明了:点击进入:用JAVA写一个画图小程序(JAVA 大作业)重排版本 设计思路 首先我直接去了Windows自带画图程序去实践模拟, ...

  4. 手把手教你写一个微信小程序日历组件

    今天我们一起写一个微信小程序日历组件 微信小程序日历组件 github.com/749264345/w- 好,我们先看一下要实现的模样,如下图 由以上截图我们可以看到 1.日历可以通过按钮[切换展示效 ...

  5. python用程序说爱你_用python写一个聊天小程序!和女朋友的专属聊天工具!

    1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可以发送封装的IP数据包的方法. Internet的传输层有两个协议 ...

  6. 用python写一个聊天小程序!和女朋友的专属聊天工具!

    1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可以发送封装的IP数据包的方法. PS:如有需要Python学习资料 ...

  7. 微信小程序+PHP 从零写一个微信小程序

    微信小程序是越来越火,参与其中的开发者也越来越多,但是很多朋友都是只懂小程序前端开发,或者是只懂 PHP 开发,本 Chat 就是想让这部分人能够自己一个人把前后端串起来,做一个专属自己的微信小程序. ...

  8. 用python写一个抽奖小程序_微信小程序抽奖助手一键参与抽奖

    写在前头的话 最近"沉迷"于微信一款小程序,就是抽奖助手.反正这个抽奖几乎不用什么成本, 就是一个个抽奖活动点进去点击参与抽奖比较麻烦.要是如果有个程序一键解决这些步骤,那就是零成 ...

  9. 搭建Spring开发环境并编写第一个Spring小程序

    一.前面,我写了一篇Spring框架的基础知识文章,里面没讲到如何配置Spring开发环境,今天就来讲一下,如果大家不知道怎么下载Spring软件包的话,可以看我那篇文章: http://blog.c ...

  10. 纯 python 开发批量读取照片 Exif 信息的小程序

    自己动手写一些小程序解决工作中的问题,是学习 python 的高效途径.这中间会遇到一些不动手想不到的问题,一个一个地解决它们,你 python 开发水平就会突飞猛进! 本文总结一下实战 python ...

最新文章

  1. .Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译
  2. 理解Java枚举类型
  3. nacos如何做配置中心?自带自动刷新配置功能?这一篇文章让你明明白白!
  4. wxWidgets:wxPen类用法
  5. MyStringUtil.java String工具类
  6. 第一次去四川的广东人是什么下场?
  7. 【CF#931.B】World Cup (思维,模拟)
  8. linux用java连接mysql_Java使用JDBC方式连接数据库
  9. Android 系统(216)---Android坐标分析过程
  10. Log Explorer 使用简介转
  11. 20170907wdVBA_ImportPicturesBaseOnExcel
  12. 域名查询服务商的方法
  13. seo从入门到精通_SEO入门书籍推荐:从入门到精通,新人必看的3本书
  14. 高德地图又出逆天黑科技!全国各大城市模型直接获取
  15. 欲望都市游戏设计 背景图层和UI图层的设计
  16. 前端console.log打印内容与后端请求返回数据不一致
  17. centos系统使用pptpd搭建在windows客户端的vpn服务器
  18. 一、Mahony姿态解算——坐标系变换
  19. asp.net core web 解决方案多项目模板制作打包总结
  20. Mysql数据库管理工具简介

热门文章

  1. 为什么程序员喜欢用dark mode深色模式
  2. python自然语言处理之分类和标注词性5.1-5.3
  3. open 3D 点云兔子模型
  4. 鸡兔同笼html语言,java 鸡兔同笼问题详解
  5. python适合做网站吗_python做网站吗
  6. 【PDF合并】滴滴出行电子发票及行程报销单【一页打印】
  7. VS Code Material Icon Theme插件设置自定义文件夹图标关联
  8. 研究了一晚上,填补了中国古代神话中的一些空白
  9. 快捷方式图标变白完美解决
  10. 计算机限制无法压缩,电脑上文件夹压缩不了怎么办