前言

她经常使用电脑,像PS、AR等这些,包括一些网页都需要使用。作为我喜欢的女孩,我就想为她做些什么。就设计了一款小工具——宁宁助手❤

核心功能设计

  1. 程序、网页直达。将一些常用的网页和程序放到一个界面,通过点击即可快速打开某一个应用和网页链接。
  2. 天气快速查询。能够查询近五天的天气,通过“天气”联想到《天气之子》这个电影,就加入了相应的天气之子文案。

UI排版布局

主页通过分页栏来划分不同的界面,以及窗体最小化,最大化,关闭功能。

应用、网页直达页由简单的按钮组成,前后对正、左右标齐。

天气查询栏,有简单的“按钮、输入框、标签框”组成。

界面美化方面采用的是“插画”的元素,因为放入一整张照片不仅会填充整个界面,而且也很不好看。

关于图形界面的设计思想

图形界面我采用的是Python自带的tkinter库,我认为图形界面的学习并不是难的,当你熟练之后,你就会发现,他就是一个“窗口+部件+函数”的一个流程,窗口为我们进一步的设计提供好“容器”,部件为我们所实现的功能打下“基础”,而函数则是我们通过按钮的触发所实现的“功能”。

实现步骤(一)——界面布局

from tkinter import *
from tkinter import messagebox
from tkinter import ttk
import os
import webbrowser
import urllib.request   #发送网络请求,获取数据
import gzip             #压缩和解压缩模块
import json             #解析获得的数据
import tkinter as tk
import random
from PIL import Image, ImageTk
import glob
import shutilTOP6 = Tk()
TOP6.geometry("630x775")TOP6.iconbitmap('宁宁图标工具.ico')#指定图标TOP6.title('宁宁小助手')tab_main=ttk.Notebook(TOP6)#创建分页栏
tab_main.place(relx=0, rely=0, width=630, height=774)tab1=Frame(tab_main,width=400, height=300)#创建第一页框架tab1.place(x=0,y=30)
tab_main.add(tab1,text='学习⚡通讯')#将第一页插入分页栏中image1 = Image.open('Card Payment_Outline(1).png')
pyt1 = ImageTk.PhotoImage(image1)
label2 = Label(tab1, image=pyt1)
label2.place(x=0,y=500)image2 = Image.open('CPU_Two Color.png')
pyt2 = ImageTk.PhotoImage(image2)
label2 = Label(tab1, image=pyt2)
label2.place(x=200,y=100)image3 = Image.open('AR_Outline.png')
pyt3 = ImageTk.PhotoImage(image3)
label2 = Label(tab1, image=pyt3)
label2.place(x=0,y=0)BUTTON = Button(tab1, fg='black',bd=5, text="ℒQQ",width = 20,command = QQ,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=30,y=50)BUTTON = Button(tab1, bd=5,  fg='black',text="ℒ微信",width = 20,command = WeChat,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=380,y=50)BUTTON = Button(tab1, fg='black', bd=5, text="✎AE",width = 10,command = AE,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=450,y=200)BUTTON = Button(tab1, fg='black', bd=5, text="✎PR",width = 10,command = PR,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=250,y=200)BUTTON = Button(tab1, fg='black', bd=5, text="✎剪映",width = 10,command = jian_ying,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=50,y=200)BUTTON = Button(tab1, fg='black', bd=5, text="✎WPS",width = 10,command = WPS,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=50,y=280)BUTTON = Button(tab1, fg='black', bd=5, text="✎剪映",width = 10,command = jian_ying,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=250,y=280)BUTTON = Button(tab1, fg='black', bd=5, text="✎百度网盘",width = 10,command = wangpan,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=250,y=280)BUTTON = Button(tab1, fg='black', bd=5, text="✎BiBili",width = 10,command = bili,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=450,y=280)BUTTON = Button(tab1, fg='black', bd=5, text="✎百度C一下",width = 10,command = baidu,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=250,y=360)BUTTON = Button(tab1, fg='black', bd=5, text="✎学习通",width = 10,command = xue_tong,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=50,y=360)BUTTON = Button(tab1, fg='black', bd=5, text="✎湘大教育",width = 10,command = xiangda,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=450,y=360)BUTTON = Button(tab1, fg='black', bd=5, text="QQ游戏",width = 10,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=250,y=500)BUTTON = Button(tab1, fg='black', bd=5, text="网易云音乐",width = 10,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=50,y=500)BUTTON = Button(tab1, fg='black', bd=5, text="腾讯视屏",width = 10,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=450,y=500)BUTTON = Button(tab1, fg='black', bd=5, text="爱奇艺",width = 10,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=250,y=570)tab2=Frame(tab_main)
tab2.place(x=100,y=30)
tab_main.add(tab2,text='天气❤助手')image4 = Image.open('Weather_Isometric.png')
pyt4 = ImageTk.PhotoImage(image4)
label2 = Label(tab2, image=pyt4)
label2.place(x=0,y=0)size_str=StringVar()
habits = tk.LabelFrame(tab2, text="相比于蓝天,我更想选择阳菜", padx=0, pady=0 )  # 水平,垂直方向上的边距均为 10
habits.place(x=45,y=450)
habits_Window = Label(habits,textvariable=size_str, width=60, height=15,  font=('楷体', 13))
habits_Window.grid()label1 = StringVar()
input_name = Label(tab2, text='☼☁❅请输入您想要查询的城市☼☁❅', font=('楷体', 14)).place(x=160, y=20)
entry = Entry(tab2, bg='#ffffff', width=20, textvariable=label1, font=('楷体', 13)).place(x=223, y=72)right_data_button = Button(tab2,fg='#696969', text="C一下",width = 10,command = show_data, font=('黑体', 13)).place(x=260, y=125)tab3=Frame(tab_main)
tab3.place(x=200,y=30)
tab_main.add(tab3,text='文件✪整理')
BUTTON = Button(tab3, fg='#696969', bd=5, text="桌面端文件整理",width = 20,command = zhengli,font=("黑体", 14))
BUTTON.grid(row=5, column=0, sticky=W)
BUTTON.place(x=200,y=50)TOP6.mainloop()

实现步骤(二)——“直达”函数

- 应用直达

def QQ():def open_app(app_dir):os.startfile(app_dir)if __name__ == "__main__":app_dir = r'"C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"'open_app(app_dir)

只需要替换“app_dir = ’链接”中的链接即可。下面我给大家梳理一下如何获取本机应用的目标位置。

首先左键点击应用“属性”,找到“快捷方式”一栏中的“目标”,将路径完整粘贴下来即可。

- 网页直达

def xue_tong():webbrowser.open('http://passport2.chaoxing.com/login?fid=&newversion=true&refer=http%3A%2F%2Fi.chaoxing.com')

只需要替换“ webbrowser.open()中的链接即可。

实现步骤(二)——“天气”函数

“相比于蓝天,我更想选择阳菜”

def show_data():#显示数据my_heart=['能遇见你真是太好了','不管晴天还是雨天,我只是想和你相遇','我只是想再一次的见到你啊','无论你在哪里,我一定拼尽全力去见你','我从来不知道,渴望蓝天的人居然有那么多','100%的晴天女孩?','那年夏天,在那个天空之上的我们'+'\n\n'+'  把这个世界的样貌,彻底的改变了。','天气真的是很不可思议,光只是天空的模样就让人感动不已。','你找到了我存在的意义,谢谢你;生活不是一帆风顺,'+'\n\n'+'总有磨难在前阻挡,我们要学会坚强努力活在这个世界中,'+'\n\n'+'遇见了你我有了依靠明白了存在的价值,谢谢你的陪伴!','有时天边有黑云,而且云片很厚,'+'\n\n'+'太阳出来,人眼还看不见,然而太阳在黑云里放射的光芒,'+'\n\n'+'透过黑云的重围,提黑云镶了一道发光的金边。'+'\n\n'+'后来太阳才慢慢地冲出重围,出现在天空,'+'\n\n'+'甚至把黑云也染成了紫色或者红色,'+'\n\n'+'这时候发光的不仅是太阳,云和海水,连我自己也成了明亮的了。']index= random.randint(0,len(my_heart)-1)size_content = my_heart[index]size_str.set(size_content)city_name1 = get_city_name1()url1 = 'http://wthrcdn.etouch.cn/weather_mini?city='+urllib.parse.quote(city_name1)url2 = 'http://wthrcdn.etouch.cn/weather_mini?citykey=101010100'#网址1只需要输入城市名,网址2需要输入城市代码#print(url1)weather_data = urllib.request.urlopen(url1).read()#读取网页数据weather_data = gzip.decompress(weather_data).decode('utf-8')#解压网页数据weather_dict = json.loads(weather_data)#将json数据转换为dict数据if weather_dict.get('desc') == 'invilad-citykey':print(messagebox.askokcancel("提示","你输入的城市名有误,或者天气中心未收录你所在城市"))else:forecast = weather_dict.get('data').get('forecast')#获取数据块root1=Tk()#副窗口root1.iconbitmap('宁宁图标工具.ico')#指定图标root1.geometry('650x280')#修改窗口大小root1.title(city_name1 + '天气状况')#副窗口标题#设置日期列表for i in range(5):#将每一天的数据放入列表中LANGS = [(forecast[i].get('date'),'日期'),(forecast[i].get('fengxiang'),'风向'),(str(forecast[i].get('fengji')),'风级'),(forecast[i].get('high'),'最高温'),(forecast[i].get('low'),'最低温'),(forecast[i].get('type'),'天气')]group = LabelFrame(root1,text = '天气状况',padx = 0,pady = 0)#框架group.pack(padx=11,pady=0,side = LEFT)#放置框架for lang, value in LANGS:#将数据放入框架中c = Label(group,text = value + ': ' + lang)c.pack(anchor = W)Label(root1,text = '今日' + weather_dict.get('data').get('ganmao'),fg = 'green').place(x=40,y=20,height=40)#温馨提示Label(root1,text = "天气因你逆转,世界因你天晴。",fg = "green",bg = "yellow").place(x=10,y=255,width=160,height=20)root1.mainloop()

通过random函数实现随机文案的选择

 my_heart=['能遇见你真是太好了','不管晴天还是雨天,我只是想和你相遇','我只是想再一次的见到你啊','无论你在哪里,我一定拼尽全力去见你','我从来不知道,渴望蓝天的人居然有那么多','100%的晴天女孩?','那年夏天,在那个天空之上的我们'+'\n\n'+'  把这个世界的样貌,彻底的改变了。','天气真的是很不可思议,光只是天空的模样就让人感动不已。','你找到了我存在的意义,谢谢你;生活不是一帆风顺,'+'\n\n'+'总有磨难在前阻挡,我们要学会坚强努力活在这个世界中,'+'\n\n'+'遇见了你我有了依靠明白了存在的价值,谢谢你的陪伴!','有时天边有黑云,而且云片很厚,'+'\n\n'+'太阳出来,人眼还看不见,然而太阳在黑云里放射的光芒,'+'\n\n'+'透过黑云的重围,提黑云镶了一道发光的金边。'+'\n\n'+'后来太阳才慢慢地冲出重围,出现在天空,'+'\n\n'+'甚至把黑云也染成了紫色或者红色,'+'\n\n'+'这时候发光的不仅是太阳,云和海水,连我自己也成了明亮的了。']index= random.randint(0,len(my_heart)-1)size_content = my_heart[index]size_str.set(size_content)

图标.icon转换

转换网址:app.xunjiepdf.com/img2icon/

用Python给喜欢的女孩写一个办公小工具,她说棒极了相关推荐

  1. 如何用python写小工具_用python写一个录音小工具

    Python的paramiko,wxPython库的应用 Sound eXchange 命令行 需求 最近在给一个做语音识别的项目做QA工作.众所周知,此类人工智能方面的项目都需要一些数据收集的工作. ...

  2. 用python来写一个视频播放小工具(附带源码)

    输入视频播放的地址,就能自动打开网页进行播放 接下来就是我们代码的编写 话不多说 直接上代码好吧 # *_* coding:utf8 *_* # -*- coding:utf-8 -*-from ur ...

  3. 用python为喜欢的人写一个程序,每天发送贴心的消息

    消息内容 包括如下: 日期(阳历+阴历): 每日壹句(内容来自爱词霸[1]): 天气预报(内容来自中国天气网[2]): 天气情况: 温度情况: 穿衣指数: 减肥指数: 空气指数: 紫外线指数: 消息效 ...

  4. Python入门如何给自己写一个文字小游戏?一只小白的Python游戏

    有朋友看了我b站投稿的小游戏视频表示感兴趣,于是在这里贴一下源代码. 视频演示的b站传送门:https://www.bilibili.com/video/av64680988#reply2016223 ...

  5. 为了撩妹用Python做了一个办公小工具,她说棒极了

    UI排版布局 主页通过分页栏来划分不同的界面,以及窗体最小化,最大化,关闭功能. 应用.网页直达页由简单的按钮组成,前后对正.左右标齐. 天气查询栏,有简单的"按钮.输入框.标签框" ...

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

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

  7. 用Python写一个纪念日计算工具

    用python写一个纪念日计算工具 前言 主要内容 日期计算函数 GUI布局 用pyinstaller打包生成.exe文件 打包后的.exe文件预览 运行结果 最后提前祝马英俊生日快乐吧~ 前言 纪念 ...

  8. python小工具小发明_【kimol君的无聊小发明】—用python写截屏小工具

    前言 今天我看了一下自己的文件夹,发现了自己写了许多似乎很无聊的代码.于是乎,一个想法油然而生:"生活已经很无聊了,不如再无聊一点叭". 说干就干,那就开一个专题,我们称之为kim ...

  9. 【kimol君的无聊小发明】—用python写截屏小工具

    [kimol君的无聊小发明]-用python写截屏小工具 前言 一.技术实现 1. 相关库 2. 定义窗口 3. 绘制工具条 4. 定义事件函数 二.后续改进 写在最后 前言 今天我看了一下自己的文件 ...

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

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

最新文章

  1. ACCP学习旅程之-----基础篇
  2. NHibernate初学者指南(2):一个完整的例子
  3. C++实现离散余弦变换(参数为二维指针)
  4. 网易云音乐ios旧版本安装包_网易云音乐产品分析报告
  5. iphone各机型参数对比_「科技美学」又是一年“双十一”,畅销机型有哪些?
  6. 2.15三亚,自由的一天
  7. Atitit 研发管理之道 attilax总结 艾龙 著 研发管理 1 简介 1 基本理念 2 基本原则 2 内容 3 团队建设 4 流程设计 4 成本管理 4 项目管理 4 绩效管理 4 风险管理
  8. Android6.0之AMS启动app中篇之创建app进程
  9. 扩展 MQL5 标准库和重用代码
  10. python控制步进电机代码tx2_步进电机按键控制.lst
  11. 查询mysql表的所有字段名_查询数据库中所有表名,查询表中所有字段名
  12. 原来在朋友眼里,我是一个闪闪发光的人
  13. Windows Storage Server 2012建立iSCSI虚拟磁盘存储
  14. Java里面for循环的几种用法
  15. 微信小程序输入框input
  16. 卡西欧350计算机度分秒转换,卡西欧FX-4500PA计算器怎样将如:12.58244度转换成度分秒啊...
  17. 软件学报投稿论文格式模板
  18. python如何检测和处理异常_Python异常的检测和处理方法
  19. 美团点评高级1234面:算法+HashMap+Zookeeper+线程+Redis+kafka
  20. Travel time in Dallas

热门文章

  1. 海域使用证换不动产证的步骤和注意问题
  2. 聚宽数据(JQData)本地化解决方案:基于MongoDB
  3. 影片剪辑实例名的几点注意
  4. 经验分享 怎么修改PDF文件中的图片以及文字
  5. MTK G-sensor
  6. 4个免费的ASP.NET托管网站
  7. You are creating too many HashedWheelTimer instances.
  8. 智能科学毕业设计题目汇总
  9. 第三方支付相关知识结构
  10. PS 常用的形状工具