前言

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?建议此次课程大家稍作了解不要浪费太多时间,因为没有哪家公司会招聘以为Python程序员开发桌面程序吧?

开发环境:

  • Python 3.6
  • Pycharm

代码

界面设置

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开发的第一步:利用Python开发一个桌面小程序相关推荐

  1. python制作超炫流星雨表白_做一个表白小程序

    双十一刚过,不知道你是不是和我一样是一个人来庆祝这个节日的.今年的双十一已经过去了,明年的双十一你是不是还是想一个人过 莫慌,我这里演示一个表白小程序. 程序的灵感来自于我曾经某天刷腾讯小视频,发现一 ...

  2. 我设计开发的第一个产品发布了,微信小程序“集美装修效果图“

    我是一名php程序员,在一家建材公司上班,因为市场和公司技术架构的变化,我全面转型做了java程序员,在学习java过程中,为了快速提升自己的开发能力,利用业余时间开发了一个项目"集美装修效 ...

  3. Python开发第一步:如何制作一个简单的桌面应用

    Python开发第一步:如何制作一个简单的桌面应用 前言 大家好,我是baifagg, 一个热爱Python的编程爱好者. 今天我们来学习一下, 如何用Python制作一个简单的桌面应用程序. 虽然桌 ...

  4. windows phone开发第一步:搭建软件开发环境

    2019独角兽企业重金招聘Python工程师标准>>> windows phone开发第一步:搭建软件开发环境:http://www.cnblogs.com/hanjun/archi ...

  5. 开发JAVA第一步,教你选好JSP虚拟空间

    导读: JavaServer PagesTM (JSP)技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法.JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程 ...

  6. 开发Android第一步,安装SDK 1.6, 模拟器及安装游戏

    转自:http://bbs.weiphone.com/read.php?tid=516501 开发Android第一步,安装SDK 1.6, 模拟器及安装游戏 windows 方法 (1) 下载 An ...

  7. 三维虚拟电子沙盘开发教程第一课 利用WPF建立3d gis数字地球(非axhost方式)

    三维虚拟电子沙盘开发教程第一课 利用WPF建立3d gis数字地球(非axhost方式) 下一步新建一个wpf工程.然后引用SDK中的gislib.dll,NewGisBiao.dll如下图: 下面上 ...

  8. python搭建微信小程序卖货要收费用吗_开发一个微信小程序需要多少钱?

    很多朋友在微信上都在问司瓦图老张[也就是我本人,下面简称老张]关于小程序商城的开发费用,今天老张跟朋友分享下,开发一个微信电商小程序商城到底需要多少钱? //有的朋友关心为什么小程序费用有几百,几千差 ...

  9. 只需6步,教你从零开发一个签到小程序

    摘要:针对于具备瞬时流量.业务场景比较简单的小程序,开发者借助FunctionGraph,可以方便快捷的搭建一个健壮的小程序后台. 本文分享自华为云社区<智慧校园想搞好,FunctionGrap ...

  10. python爬虫教程视频下载-利用Python网络爬虫获取电影天堂视频下载链接【详细教程】...

    相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来. [二.项目准备] ...

最新文章

  1. 看看那些双车中接力装置
  2. 教你如何看手相掌握命运!
  3. 阿里云日志添加要查询字段
  4. LeetCode 2086. 从房屋收集雨水需要的最少水桶数(贪心)
  5. java基础知识 多线程
  6. (操作系统题目题型总结)第二章:处理器管理
  7. 提高GAN训练稳定性的9大tricks
  8. Android手机模拟器如何把语言设置为中文
  9. python读取行政区txt文件实现行政区树_数据库的点数据根据行政区shp来进行行政区处理,python定时器实现...
  10. C#程序员整理的Unity 3D笔记(十三):Unity 3D基于组件的思想
  11. 大学毕业生推荐表的计算机水平,大学毕业生就业推荐表学校鉴定评语
  12. 香港中文大学推荐大学期间书单 87本你读过哪些?
  13. 供应链金融三种模式介绍及对比
  14. oracle双活数据中心建设_两地三中心数据中心和同城双活数据中心的区别?
  15. eui怎么在名字后面显示服务器,EUI如何打开经验条 显示经验条其实很简单
  16. linux下创建用户分组及设置分组权限
  17. 展讯7731C_M Android6.0 充电指示灯实现(一)------关机充电实现【转】
  18. vue 移动端视频功能实现
  19. sum idx i matlab,聚类——FCM的matlab程序
  20. 医疗行业CRM客户管理解决方案

热门文章

  1. 单片机入门到高级开挂学习路径(附教程+工具)
  2. 产品快速迭代的五大要点
  3. SAP《MM学习指南》操作记录----仓库盘点
  4. YOLOv7官方开源 | Alexey Bochkovskiy站台,精度速度超越所有YOLO,还得是AB
  5. 每天,每周,每月每隔cron表达式
  6. Unity强化学习之ML-Agents的使用
  7. flask-SQLAlchemy数据库密码加密
  8. win10玩cf如何调全屏_穿越火线:WIN10系统烟雾头和画面卡顿解决办法
  9. Protel DXP 2004的元件封装/快捷键大全/PCB使用技巧
  10. mysql 分区原理_mysql 原理~ 分区表