前言

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?建议此次课程大家稍作了解不要浪费太多时间,因为没有哪家公司会招聘以为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] = i

else:

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

  1. python爬虫股票市盈率_量化交易的第一步,Python爬取股票数据

    基本环境配置python 3.6 pycharm requests csv time 相关模块pip安装即可 目标网页 分析网页 一切的一切都在图里 找到数据了,直接请求网页,解析数据,保存数据 请求 ...

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

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

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

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

  4. python制作桌面小程序_微信小程序在线制作:快速生成一个餐饮小程序

    相信很多餐饮行业的商家都遇到过这类问题:一到用餐高峰期,餐厅内就拥挤不堪,工作人员也忙得不可开交,前厅后厨来回跑,时间长了顾客也等得不耐烦.此外,外卖平台的高额抽成也让普通餐饮商家生存越来越艰难.本来 ...

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

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

  6. 2天3夜开发了一个微信小程序,用它挣了10.7万

    大家好,我是对白. 粉丝一直说要推荐一个微信小程序的项目,找到下面这个希望大家白嫖快乐.本项目可用于二次开发接私活,前段时间有粉丝给我反馈他用这个项目改造3天挣了10多万. 项目介绍 youlai-m ...

  7. 微信小程序商城搭建,如何开发一个微信小程序商城

    分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式):我们微信小程序项目属于CS架构,C客户端是我们要开发的小程序,S端是我们要开发的后台管理系 ...

  8. 圣诞节快到了,用Python给好友做一个圣诞树小程序吧【保姆式教程】

    圣诞节快到了,用Python给好友做一个圣诞树小程序吧[保姆式教程] 马上圣诞节了,一个人的圣诞节可能会有些孤独,我来教你怎么用代码写一棵超级治愈的圣诞树. 话不多说,下面来看具体怎么实现吧! 文章目 ...

  9. python下载电影天堂视频_一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接...

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的 ...

  10. python下载电影天堂视频教程_一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知 ...

最新文章

  1. 我的世界1.7.2 java_我的世界Java版1.7版本种子分享
  2. 转货币格式和 rgb转hex
  3. gettext()方法输出空白_如何将文档内容输出为无水印图片?超简单的操作方法看这里...
  4. Log4j执行漏洞修复教程
  5. 机器学习的最佳学习路线,就在这里!
  6. oracle临时表空间占用率过高,ORACLE 临时表空间使用率过高的原因及临时解决方案...
  7. sql单表简单的分页脚本
  8. 122345 java_【每天算法2】:用java语言实现,一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连。 | 学步园...
  9. 没钱,就别玩大学这场游戏
  10. linux 任务计划 cron
  11. 【转】如何使用瑞萨E10A调试SH系列不带片内FLASH的单片机
  12. 风险管理那些事:当你身边有头“熊
  13. Tomcat7下配置SSI,同时解决中文乱码问题
  14. Oracle数据库链接源文件
  15. kali wifi密码 破解
  16. 4k微型计算机接口,单片微型计算机原理与接口技术:基于STC15W4K32S4单片机
  17. 用这个玩吃鸡:宏按键加一键恢复加自由移动视角,你想要的功能它都有
  18. Excel 2016: 录制宏入门
  19. SpringSecurity(六)注销登录
  20. 真实的周星星,你了解吗?

热门文章

  1. conda 小tips
  2. Hadoop Streaming和Pipes会意
  3. linux系统如何安装bt5,BT5硬盘安装(多系统linux + win + BT5)
  4. Spark学习之路——9.Spark ML
  5. 基于javaweb酒店信息管理系统、基于ssm/springboot的酒店预定系统
  6. [RK3399 Android7.1.2]新增wifibt模块:rtl8822cs驱动以及解决所遇问题
  7. selenium爬取裁判文书网
  8. excel二维表转化为一维表
  9. GNSS/INS组合导航(六):惯性导航误差建模
  10. 动作识别-Regularization on Spatio-Temporally Smoothed Feature for Action Recognition-CVPR2020