基于树莓派的python界面开发实例教程

2023-11-10

基于树莓派的python界面开发实例教程

环境测试

点击树莓派的开始菜单,找到programming-Python3(IDLE),点击打开。
在这里插入图片描述
打开后如下:
在这里插入图片描述
在home/pi下面建立home/pi/py3prog的文件夹,专门用来存放python脚本,利用IDLE来新建一个home/pi/py3prog/digitalClock.py文件,用来存放让实例文件。

用IDLE打开刚刚新建的文件,填入以下带代码:

from tkinter import *

root = Tk()
root.titlle('this is my digital clock')
root.geometry('300x100')
app = Application(root)
app.mainloop()

保存,运行,应当出现以下界面:
在这里插入图片描述

作者还拥有个人公众号,会写一些感悟文章,知圈,二维码如下,欢迎扫描关注,关注后有作者微信,欢迎添加交流:
知圈二维码

添加label实例

特别注意的是__init__的下划线是由两段‘_’组成的,如果拼写为一个下划线,虽然不报错,但是运行后控件无效,不显示。

from tkinter import *

class Application(Frame):
	"""Build the basic window frame template"""

	def __init__(self, master):
		super(Application, self).__init__(master)
		self.grid()
		self.create_widgets()

	def create_widgets(self):
		self.lable1 = Label(self, text='Welcome to my window!')
		self.lable1.grid(row=0, column=0, sticky= W)

root =Tk()
root.title('Test Application window with label1')
root.geometry('300x100')
app=Application(root)
app.mainloop()

运行后结果如下:
在这里插入图片描述

时钟程序

from tkinter import *
import time
import threading


class Application(Frame):
        """Build the basic window frame template"""

        def __init__(self, master):
                super(Application, self).__init__(master)
                self.grid()
                self.create_widgets()

        def create_widgets(self):
                t = time.localtime()
                current_time = time.strftime('%H:%M:%S',t)
                self.lable1 = Label(self, text=current_time)
                self.lable1.grid(row=0, column=0, sticky= NSEW)
                self.lable1.config(font=('Arial',370))
                self.lable1.config(bg='black',fg='white')
                self.lable1.after(1000,self.Refresher)
                
        def Refresher(self):
                t = time.localtime()
                current_time = time.strftime('%H:%M:%S',t)
                self.lable1.configure(text=current_time)
                self.lable1.after(1000,self.Refresher)
                
root =Tk()
root.title('Test Application window with label1')
width= root.winfo_screenwidth()
height= root.winfo_screenheight()
root.geometry("%dx%d" % (width, height))
root.config(bg='black')
app=Application(root)      
app.mainloop()

运行后如下:

在这里插入图片描述

添加天气

时钟写完以后,觉得有点空洞,决定加入天气情况的信息。经初步调研,选择用‘openweathermap’的API,官网见此
此提供商有集成好的python包,注册一个账号可免费获取(目前免费版三小时更新一次)。需要导入“pyowm”包。

官网有示例文档

代码如下(特别备注:pyowm.OWM括号里面的是API Key,去官网注册一个账户,会自动生成一个,代码里的是示例,我已更改过,不可用,请替换成自己的):

from tkinter import *
import time
import threading
import pyowm
import json


class Application(Frame):
        """Build the basic window frame template"""

        def __init__(self, master):
                super(Application, self).__init__(master)
                self.grid()
                self.create_widgets()

        def create_widgets(self):
                t = time.localtime()
                current_time = time.strftime('%H:%M:%S',t)
                self.lable1 = Label(self, text=current_time)
                self.lable1.grid(row=0, column=0, sticky= NSEW)
                self.lable1.config(font=('Arial',370))
                self.lable1.config(bg='black',fg='white')
                self.lable1.after(1000,self.Refresher)
                owm = pyowm.OWM('02f7e0006144dc293dcd49ec8c4750dd')
                mgr = owm.weather_manager()
                weather = mgr.weather_at_place('Shanghai,CN').weather
#                sf = owm.weather_at_place('London,uk')
                temp_dict_celsius = weather.temperature('celsius')
                wetherInfo = json.dumps(temp_dict_celsius)
                self.labelweatherlocal = Label(self,text = current_time + wetherInfo)
                self.labelweatherlocal.grid(row=1, column=0, sticky= NSEW)
                self.labelweatherlocal.config(font=('Arial',34))
                self.labelweatherlocal.config(bg='black',fg='white')
                self.labelweatherlocal.after(600000,self.weatherRefresher)
               
        def Refresher(self):
                t = time.localtime()
                current_time = time.strftime('%H:%M:%S',t)
                self.lable1.configure(text=current_time)
                self.lable1.after(1000,self.Refresher)

        def weatherRefresher(self):
                t = time.localtime()
                current_time = time.strftime('%H:%M:%S',t)
                owm = pyowm.OWM('02f7e0006144dc293dcd49ec8c4750dd')
                mgr = owm.weather_manager()
                weather = mgr.weather_at_place('Shanghai,CN').weather
#                sf = owm.weather_at_place('London,uk')
                temp_dict_celsius = weather.temperature('celsius')
                wetherInfo = json.dumps(temp_dict_celsius)
                self.labelweatherlocal.configure(text = current_time + wetherInfo)
                self.labelweatherlocal.after(600000,self.weatherRefresher)
                

                
root =Tk()
root.title('Test Application window with label1')
width= root.winfo_screenwidth()
height= root.winfo_screenheight()
root.geometry("%dx%d" % (width, height))
root.config(bg='black')
app=Application(root)      
app.mainloop()

运行结果如下:
在这里插入图片描述
下面返回的是时间(用以显示更新时间,目前十分钟更新一次),后面会写一个好看的窗口把数据搞得好看些。目前返回信息依次是当前温度、最高温度、最低温度、体感温度。作者在上海,所以参数传进去的是上海。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于树莓派的python界面开发实例教程 的相关文章

随机推荐

  • TOF/结构光camera区别、TOF同时成像深度图、IR图原理?

    TOF 结构光camera区别 参考 https zhuanlan zhihu com p 51218791 TOF是通过红外光发射器发射调制后的红外光脉冲 不停地打在物体表面 经反射后被接收器接收 通过相位的变化来计算时间差 进而结合光速
  • 【Qt】串口通讯

    Qt串口通信基础及名词说明 1 串口通信 1 波特率 2 数据位 3 停止位 4 奇偶校验位 2 名词介绍简单版 1 起始位 2 数据位 3 校验位 4 停止位 5 空闲位 2 Qt串口通信模块QtSerialPort简介 1 QSeria
  • Jmeter--记录一个使用CSV Data Set Config犯的低级错误

    关于Jmeter的这个元件CSV Data Set Config网上已有大量篇幅的文章去接受 并且介绍的都挺详细 这里就不再介绍 这里主要介绍第一次使用此元件时犯的错误 当脚本完成后 点击运行 但是在察看结果树中没有发现运行结果 可以说点击
  • SpringBoot 如何保证接口安全?老鸟们都是这么玩的!

    为什么要保证接口安全 对于互联网来说 只要你系统的接口暴露在外网 就避免不了接口安全问题 如果你的接口在外网裸奔 只要让黑客知道接口的地址和参数就可以调用 那简直就是灾难 举个例子 你的网站用户注册的时候 需要填写手机号 发送手机验证码 如
  • 23年找工作的心酸历程

    前几天在脉脉上看到一个热议话题 23年找工作的心酸历程 大家都知道近几年互联网大环境不好 找工作变得越来越卷了 就算是BAT这种大厂出来的 也不见得就有多好找工作 可想而知 如果你的背景和能力不是特别强 很有可能练简历关都过不了 特别是工作
  • SpringBoot 快速整合SpringDataJPA (基础篇)

    序言 SpringDataJPA秉承大道至简的设计理念 给我们的数据层开发带来的极大的便利 诸如基于注解就可完成实体 数据库的映射关系 提供自带的通用Repo接口 接口方法约定名称即可实现数据访问等特性都是值得称赞的功能 正文 Spring
  • Flutter踩坑之 Android license status unknown 解决方案

    问题引入 Mac上搭建Flutter开发环境文章中 在使用flutter doctor查看是否需要安装其它依赖项时 检测出三个问题 Doctor found issues in 3 categories 其中有关Android平台的报错如下
  • C++ sort()函数

    C 中的sort 函数是用于对容器 如数组 向量 链表等 中的元素进行排序的标准库函数 它使用了一种称为快速排序 quicksort 的排序算法 通常具有较好的性能 sort 函数位于
  • element 表格二次封装

  • Mac office 2016 word 出现隐藏模块中出现编译错误: link

    try to remove Library Group Containers UBF8T346G9 Office User Content Startup Word linkCreation dotm or whatever in that
  • Redis单机版全面讲解

    目录 常识 什么是redis redis为什么快 redis作为实例安装在系统中 redis数据类型 redis命令 String类型相关命令 list类型相关命令 hash类型相关命令 set类型相关命令 zset类型相关命令 redis
  • LAN8720A网络模块的使用问题

    一 LAN8720A模块驱动电路 最近在调试STM32F4驱动LAN8720A网络模块 在做方案前参考是正点原子的LAN8720A的驱动电路方案 但是从网上买回来的LAN8720A模块用正点原子的例程一直驱动不起来 在windows系统下一
  • vue提示插件[vscode]

    在VSCode Marketplace 搜素Vue 出现关于语法高亮的插件有 vue vue beautify vue color VueHelper vertur等等 比较了下载数量可以了解到 vetur 是目前比较好的语法高亮插件 我们
  • Eclipse使用(Java基础)&Spring boot学习(一)

    Eclipse安装 这个很简单 搜索一下Eclipse下载即可 我是在这里下的 然后选个开发环境 C 的话我会在Visual Studio下写 所以只装了Java 一路next就好 没有什么坑 Hello World Create a Ja
  • HADOOP介绍

    1 HADOOP背景介绍 1 1 什么是HADOOP HADOOP是apache旗下的一套开源软件平台 HADOOP提供的功能 利用服务器集群 根据用户的自定义业务逻辑 对海量数据进行分布式处理 HADOOP的核心组件有 HDFS 分布式文
  • 嵌入式操作系统风云录:历史演进与物联网未来.

    嵌入式操作系统风云录 历史演进与物联网未来 何小庆 著 图书在版编目 CIP 数据 嵌入式操作系统风云录 历史演进与物联网未来 何小庆著 北京 机械工业出版社 2016 10 ISBN 978 7 111 55085 3 嵌 何 实时操作系
  • Java项目结构概述

    文章目录 前言 一 项目结构介绍 1 单模块项目结构 2 多模块项目结构 3 分层结构 4 MVC项目结构 5 插件化结构项目 6 微服务架构结构 总结 前言 构建一个良好的Java项目结构是开发高质量 可扩展和易维护应用程序的重要基础 在
  • skimage图像的读取与保存

    首先 说明用opencv与skimage io imread读取和保存图片的区别 读取和保存后的都是numpy格式 但cv2的读取和存储格式是BGR 而skimage的读取和存储格式是RGB 1 读取图片 skimage读取图片 img s
  • The deduced formulas of Conv1d and ConvTranspose1d

    torch nn Conv1d in channels out channels kernel size stride 1 padding 0 dilation 1 groups 1 bias True In the simplest ca
  • 基于树莓派的python界面开发实例教程

    基于树莓派的python界面开发实例教程 环境测试 添加label实例 时钟程序 添加天气 环境测试 点击树莓派的开始菜单 找到programming Python3 IDLE 点击打开 打开后如下 在home pi下面建立home pi