屏幕时间计时器(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正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

一文带你搞懂Python中__init__.py到底是什么

《一文带你搞懂Python中__init__.py到底是什么》朋友们,今天我们来聊聊Python里一个低调却至关重要的文件——__init__.py,有些人可能听说过它是“包的标志”,也有人觉得它“没... 目录先搞懂 python 模块(module)Python 包(package)是啥?那么 __in

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络