屏幕时间计时器(python + Tkinter

2024-08-25 03:12

本文主要是介绍屏幕时间计时器(python + Tkinter,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

库安装区别:

  • pip install 主要用于管理 Python 项目的依赖项。
  • apt-get install 用于系统级别的软件包管理,安装的范围更广,包括操作系统所需的所有软件包。

MVC设计模式       

MVC 分层设计的核心:

  1. 模型(Model):管理数据和业务逻辑,提供数据存储、访问和更新功能。

  2. 视图(View):负责用户界面的展示,显示模型数据,与用户直接交互。

  3. 控制器(Controller):处理用户输入,更新模型,通知视图刷新,协调模型与视图的交互。

Tkinter介绍:

Tkinter 是 Python 的标准库,用于创建简单而跨平台的图形用户界面(GUI) 

基本语法: 

import tkinter as tk  # 导入 tkinter 模块并简写为 tk# 定义按钮点击事件的回调函数
def on_button_click():entry_text = entry.get()  # 获取文本框中输入的内容label.config(text=f"You entered: {entry_text}")  # 更新标签的文本为用户输入的内容# 创建主窗口
root = tk.Tk()
root.title("Simple Tkinter App")  # 设置窗口标题# 创建一个标签,提示用户输入内容
label = tk.Label(root, text="Enter something:", font=("Arial", 14))
label.pack(pady=10)  # 使用 pack() 布局管理器,并设置上下间距为 10 像素# 创建一个文本输入框
entry = tk.Entry(root, width=20)  # 设置文本框宽度为 20 个字符
entry.pack(pady=10)  # 使用 pack() 布局管理器,并设置上下间距为 10 像素# 创建一个按钮,当点击时执行 on_button_click 函数
button = tk.Button(root, text="Submit", command=on_button_click)
button.pack(pady=10)  # 使用 pack() 布局管理器,并设置上下间距为 10 像素# 启动 Tkinter 主事件循环
root.mainloop()

运行模式:

  • 界面布局:开发者使用 Tkinter 提供的控件(如 LabelButtonEntry)创建和布局界面。
  • 事件绑定:通过将控件与特定事件绑定到回调函数,实现用户交互。
  • 事件处理:当用户与界面进行交互时,触发事件,执行相应的回调函数。
  • 事件循环:启动事件循环,应用程序等待并响应用户的操作,直到用户关闭程序。

项目结构;

Controller:        

(它将业务逻辑和用户交互的结果转化为具体的操作

 1.SoundFactory类:
  • 配置音频系统参数
  • 生成音频方法
参数介绍: 
  • 采样率 (frequency=44100)

    • 定义音频的采样率,影响音频的清晰度和细节。标准值为 44100 Hz,适用于高质量音频。
  • 位深度 (size=-16)

    • 设置音频样本的位深度。-16 表示使用 16 位有符号音频,提供更广的动态范围。
  • 音频通道数 (channels=2)

    • 指定音频通道的数量。2 表示立体声,适用于左右声道的音频播放。
  • 缓冲区大小 (buffer=2048)

    • 控制音频数据的缓冲区大小,影响音频播放的延迟和稳定性。
语法注意: 

(1) @StaticMethod装饰器        实现静态方法,不需要实例化即可实现

                                                        self 参数方法,必须实例化后才能调用方法

class MyClass:@staticmethoddef static_method(x, y):return x * ydef instance_method(self, x, y):return x + yobj = MyClass()
result = obj.instance_method(1, 2)
print(result)  # 输出: 3result =  MyClass().static_method(1, 2)
print(result)  # 输出: 2

 2.DisplayController类:

Model:

1. Configure
  • 功能:加载并管理配置文件。
  • 关键点
    • 初始化时设置配置文件路径。
    • 提供方法读取配置文件中的值。
 语法注意:

(1)在 .ini 配置文件中,数字值和注释不能放在同一行。同一行配置文件无法解析

2. Timer
  • 功能:管理计时器的初始化和状态。
  • 关键点
    • Configure 类获取配置信息,设置计时器的初始时间。
    • 管理计时器的运行状态。
    • 停止方法,启动方法,响铃方法,设置方法
语法注意:

(1)__init__  python 识别为构造函数

(2)在 Python 中,属性不需要提前定义,在类中,只要用 self.属性名 = 值

(3)实例属性是通过 self 定义的,通常只能在类实例化后使用,因为它们与特定对象绑定

(4)root.after(500, run_timer) 是 Tkinter 的方法,用于在 500 毫秒后执行 run_timer 函数,实现延时执行或定时器功能。

View:

1.WidgetFactory类
属性:

字体, 字体颜色, 字体背景色, 待显示的应用程序

(1)创建label

label文字

(2)创建button

1. 结构和数据绑定

  • self.root: 组件的父容器,指定在哪个窗口或框架中显示。
  • textvariable=textvariable: 数据绑定,用于获取或设置组件的值。

2. 输入验证

  • validate="key": 验证类型,指定何时进行输入验证。
  • validatecommand=validatecommand: 验证命令,绑定验证函数。

3. 数值范围(from_ 是最小值,to 是最大值,体现了范围的起点和终点

  • from_=from_: 组件的最小值。
  • to=to: 组件的最大值。

4. 外观样式

  • bg=self.background_color: 背景颜色。
  • fg=self.foreground_color: 前景色或文本颜色。
  • relief="flat": 边框样式,设为平面无边框。
  • bd=1: 边框宽度。
  • width=3: 组件宽度,以字符数计算。
  • font=self.font: 字体样式。
  • justify="center": 文本居中对齐。
(3)创建spinbox
语法注意:

(1)validatecommand = root.register(factory.validate_numbers) 的作用是将 validate_numbers 函数注册为 tkinter 的验证命令,用于实时输入验证。

(2)create_spinbox(self.second_value, 0, 59, (self.spinput, "%P", "%s"))

"%P" 传递当前输入内容,"%s" 传递输入前的内容,确保验证函数实时检查输入是否有效。

2.displayView类

语法注意:

(1)调整顶层框大小        root.geometry("200x100")

(2)获取输入框内容        文本框 - pack后  - get方法获取

功能更新

语法:

(1)监控某进程是否运行(psutil通过遍历所有运行进程,查找目标进程名

(2)监控主机是否访问某个网站

1.监控根域名(如 blog.csdn.net)即可判断是否访问了该网站的任何页面,因为所有子页面请求都会通过根域名进行通信

2.浏览器访问网页核心步骤

  • DNS 解析:将域名转换为 IP 地址。
  • 发送请求:浏览器向服务器发送页面请求。
  • 接收并渲染响应:服务器返回网页内容,浏览器解析并显示页面。

3.监控原理

  • 域名解析

    • 将目标网站的域名解析为对应的 IP 地址,用于连接检测。
  • 数据包捕获与处理

    • 捕获网络数据包,通过检测 TCP SYN 包识别与目标 IP 的连接尝试。
  • 后台监控与线程管理

    • 在后台线程中持续运行监控过程,确保实时检测而不阻塞主程序。

这篇关于屏幕时间计时器(python + Tkinter的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1104377

相关文章

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参