mac桌面时钟 浮动 (python)

浮动时钟,多地时区

app store的都要钱,于是。。。。我们让chatgpt来实现一个吧:

数字:

在这里插入图片描述

代码:

import sys
import datetime
import pytzfrom PyQt5.QtWidgets import QApplication, QMainWindow, QGraphicsView, QGraphicsScene, QGraphicsTextItem, QWidget, QHBoxLayout, QPushButton
from PyQt5.QtCore import QTimer, Qt, QCoreApplication
from PyQt5.QtGui import QColor, QFont, QIcon, QLinearGradient, QBrushclass ClockWidget(QGraphicsView):def __init__(self, timezone, location, color):super().__init__()self.scene = QGraphicsScene(self)self.setScene(self.scene)self.setGeometry(0, 0, 200, 100)  # Adjust width and height as needed# Add city namecity_font = QFont("Arial", 30, QFont.Bold)city_text = QGraphicsTextItem(location)city_text.setFont(city_font)city_text.setDefaultTextColor(color)city_text.setPos(10, 10)  # Adjust position as neededself.scene.addItem(city_text)# Add digital timeself.digital_time = QGraphicsTextItem()self.digital_time.setFont(QFont("Arial", 30, QFont.Bold))self.digital_time.setDefaultTextColor(QColor(255, 215, 0))  # Golden colorself.digital_time.setPos(10, 50)  # Adjust position as neededself.scene.addItem(self.digital_time)# Create gradient backgroundgradient = QLinearGradient(0, 0, 0, 600)gradient.setColorAt(0.0, QColor(0, 0, 0))  # Silver colorgradient.setColorAt(1.0, QColor(255, 255, 255))  # White colorself.setBackgroundBrush(QBrush(gradient))self.timer = QTimer(self)self.timer.timeout.connect(self.update)self.timezone = pytz.timezone(timezone)self.timer.start(1000)def update(self):now = datetime.datetime.now(self.timezone)time = now.strftime("%H:%M:%S")  # Format time as hour:min:seconds# Update digital timeself.digital_time.setPlainText(time)super().update()class ClockApp(QMainWindow):def __init__(self):super().__init__()# Create the widget container and layoutself.widget = QWidget()self.layout = QHBoxLayout()# Create the clock widgetsself.clock1 = ClockWidget('Asia/Shanghai', 'Beijing', QColor(255, 255, 255))  # Red color for locationself.clock2 = ClockWidget('Europe/Paris', 'Paris', QColor(255, 255, 255))  # Blue color for location# Add clocks to the layoutself.layout.addWidget(self.clock1)self.layout.addWidget(self.clock2)# Create Exit button# self.exit_button = QPushButton()# self.exit_button.setIcon(QIcon('exit.png'))  # Path to the image file for the button# self.exit_button.setStyleSheet("background-color: red")# self.exit_button.clicked.connect(QCoreApplication.instance().quit)  # Connect button click to exit action# Create Exit button# Create Exit buttonself.exit_button = QPushButton('X')  # Add 'X' as the button textself.exit_button.setStyleSheet("QPushButton {background-color: gray; color: white; font-weight: bold; font-size: 18px; border-radius: 15px; width: 30px; height: 30px;}""QPushButton:pressed {background-color: darkred;}")self.exit_button.setFixedSize(30, 30)  # Fix the size of the buttonself.exit_button.clicked.connect(QCoreApplication.instance().quit)  # Connect button click to exit action# Add Exit button to the layoutself.layout.addWidget(self.exit_button)# Set layout and window propertiesself.widget.setLayout(self.layout)self.setCentralWidget(self.widget)self.setGeometry(300, 300, 500, 100)  # Adjust window size as neededself.setWindowFlags(Qt.FramelessWindowHint)  # Remove window bar# For dragging the windowself.m_mouse_down = Falseself.m_last_pos = None# Mouse press eventdef mousePressEvent(self, event):self.m_mouse_down = Trueself.m_last_pos = event.pos()# Mouse move eventdef mouseMoveEvent(self, event):if self.m_mouse_down:self.move(self.pos() + (event.pos() - self.m_last_pos))# Mouse release eventdef mouseReleaseEvent(self, event):self.m_mouse_down = Falseif __name__ == '__main__':app = QApplication(sys.argv)ex = ClockApp()ex.show()sys.exit(app.exec_())

模拟加数字效果:

土豪金效果

代码:


import sys
import datetime
import pytz
from PyQt5.QtWidgets import QApplication, QMainWindow, QGraphicsView, QGraphicsScene, QGraphicsLineItem, QGraphicsTextItem, QWidget, QHBoxLayout
from PyQt5.QtCore import QTimer, QTime, Qt, QPointF, QPoint
from PyQt5.QtGui import QColor, QTransform, QPen, QFont, QBrush, QLinearGradientclass ClockWidget(QGraphicsView):def __init__(self, timezone, color):super().__init__()self.scene = QGraphicsScene(self)self.setScene(self.scene)self.setGeometry(0, 0, 300, 300)# Define the clock hands with their colors and widthsself.hour_hand = QGraphicsLineItem(0, 0, 0, -60)self.hour_hand.setPen(QPen(QColor(255, 0, 0), 5))  # Red color, width 5self.minute_hand = QGraphicsLineItem(0, 0, 0, -80)self.minute_hand.setPen(QPen(QColor(0, 255, 0), 4))  # Green color, width 4self.second_hand = QGraphicsLineItem(0, 0, 0, -90)self.second_hand.setPen(QPen(QColor(0, 0, 255), 3))  # Blue color, width 3for hand in [self.hour_hand, self.minute_hand, self.second_hand]:hand.setPos(150, 150)self.scene.addItem(hand)# Add clock ticksfor i in range(12):item = QGraphicsLineItem(0, 0, 0, -100)item.setPos(150, 150)item.setPen(QPen(QColor(255, 215, 0), 2))item.setTransform(QTransform().rotate(i * 30))self.scene.addItem(item)# Add numbers at top, right, bottom, left positionsfont = QFont("Arial", 16)numbers = {'12': QPointF(150, 50), '3': QPointF(250, 150), '6': QPointF(150, 250), '9': QPointF(50, 150)}for number, position in numbers.items():text_item = QGraphicsTextItem(number)text_item.setFont(font)text_item.setPos(position)self.scene.addItem(text_item)# Add city namecity_font = QFont("Arial", 30)city_text = QGraphicsTextItem(timezone)city_text.setFont(city_font)city_text.setDefaultTextColor(color)city_text.setPos(50, 10)  # Adjust position as neededself.scene.addItem(city_text)# Add digital timeself.digital_time = QGraphicsTextItem()self.digital_time.setFont(QFont("Arial", 30, QFont.Bold))self.digital_time.setDefaultTextColor(Qt.black)self.digital_time.setPos(60, 260)  # Adjust position as neededself.scene.addItem(self.digital_time)# Create gradient backgroundgradient = QLinearGradient(0, 0, 0, 600)gradient.setColorAt(0.0, QColor(192, 192, 192))  # Silver colorgradient.setColorAt(1.0, QColor(255, 255, 255))  # White colorself.setBackgroundBrush(QBrush(gradient))self.timer = QTimer(self)self.timer.timeout.connect(self.update)self.timezone = pytz.timezone(timezone)self.timer.start(1000)def update(self):now = datetime.datetime.now(self.timezone)time = QTime(now.hour, now.minute, now.second)self.hour_hand.setTransform(QTransform().rotate(30.0 * (time.hour() + time.minute() / 60.0)))self.minute_hand.setTransform(QTransform().rotate(6.0 * (time.minute() + time.second() / 60.0)))self.second_hand.setTransform(QTransform().rotate(6.0 * time.second()))# Update digital timeself.digital_time.setPlainText(time.toString())super().update()class ClockApp(QMainWindow):def __init__(self):super().__init__()# Create the widget container and layoutself.widget = QWidget()self.layout = QHBoxLayout()# Create the clock widgetsself.clock1 = ClockWidget('Asia/Shanghai', QColor(255, 0, 0))self.clock2 = ClockWidget('Europe/Paris', QColor(0, 0, 255))# Add clocks to the layoutself.layout.addWidget(self.clock1)self.layout.addWidget(self.clock2)# Set layout and window propertiesself.widget.setLayout(self.layout)self.setCentralWidget(self.widget)self.setGeometry(300, 300, 600, 350)  # Adjusts window size. Format: (x_position, y_position, width, height)self.setWindowFlags(Qt.FramelessWindowHint)  # Remove window bar# For dragging the windowself.m_mouse_down = Falseself.m_last_pos = QPoint()# Mouse press eventdef mousePressEvent(self, event):self.m_mouse_down = Trueself.m_last_pos = event.pos()# Mouse move eventdef mouseMoveEvent(self, event):if self.m_mouse_down:self.move(self.pos() + (event.pos() - self.m_last_pos))# Mouse release eventdef mouseReleaseEvent(self, event):self.m_mouse_down = Falseif __name__ == '__main__':app = QApplication(sys.argv)ex = ClockApp()ex.show()sys.exit(app.exec_())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21292.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL为什么要使用B+树做索引?MySQL索引存储模型推演,B+树在MySQL的落地形式

文章目录 一、什么是索引1、索引初体验2、索引图解3、索引类型 二、索引存储模型推演1、二分查找2、二叉查找树(BST Binary Search Tree)3、平衡二叉树(AVL Tree)(左旋、右旋)(1)平衡…

STL标准模板库 set容器

文章目录 迭代器迭代器的五大分类迭代器系列帮手函数一览 set容器打印任意 STL 容器的printer.hset与vectorset 和 vector 的区别set 和 vector 迭代器的共同点set 和 vector 迭代器的不同点 set 的排序set 的排序:string 会按“字典序”来排set 的排序:…

云计算UPS监控,怎么办?

在大型数据机房中,UPS系统扮演着关键的角色,为计算机和网络设备提供可靠的电力备份。由于数据机房的规模庞大且关键性强,监控UPS系统的可靠性和效率至关重要。 UPS监控可以提供实时的电池状态、负载信息、电网电压等监测数据,并能…

代码随想录打卡

这里写目录标题 1.数组部分1.1二分查找1.2移除元素1.3 有序数组的平方1.4长度最小的子数组1.5螺旋矩阵II 2. 链表部分2.1移除链表元素2.2设计链表2.3反转链表2.4两两交换相邻的节点2.5删除链表的倒数第n个节点2.6环形链表II2.7链表相交 3.哈希表 1.数组部分 1.1二分查找 class…

我司的短信接口被刷了

如何发现的 成本分摊系统,将成本分摊给业务部门时,业务部门对账,发现某一类型的短信用量上涨了100多倍 排查调用来源时,发现来源为C端用户,由于调用量异常高,业务反馈近期无活动,因此怀疑被刷…

服务器数据库中了360后缀勒索病毒怎么办,如何预防勒索病毒攻击?

随着网络技术的不断发展,企业的计算机服务器也受到了网络安全威胁,近日,很多企业的服务器被360后缀勒索病毒攻击,导致企业的数据库中的许多重要数据被加密,无法正常读取打开。360后缀勒索病毒数据BeijingCrypt勒索病毒…

请求响应-日期时间参数的接受

日期参数 由于从前端发送的请求中,日期的格式可能各不相同,使用DateTimeFormat注解完成日期参数格式的转换具体关键代码如下: 在postman中发出对应请求携带对应参数结果如下: 参数名称要与方法中的形参名称一致,免得…

【Python】PyCharm中调用另一个文件的函数或类

🎉欢迎来到Python专栏~PyCharm中调用另一个文件的函数或类 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:Python学习专栏 文章作者技术和水平有限,如果文中出现错误&…

【IMX6ULL驱动开发学习】18.中断下半部(tasklet、工作队列、中断线程化)

下图表述了Linux内核的中断处理机制,为了在中断执行时间尽量短和中断处理需完成的工作尽量大之间找到一 个平衡点, Linux将中断处理程序分解为两个半部: 顶半部(Top Half) 和底半部(Bottom Half&#xff09…

C语言a---b

C语言的编译遵循贪心读法,也就是说,对于有歧义的符号,编译器会一直读取,直到它的意思完结; a---b,是a-- -b还是a- --b,根据贪心法则,读到第二个减号,意思完结&#xff0c…

你知道mp3转换器怎么用吗?分享在线音频转换mp3怎么弄

飒飒:嘿,你有没有想过如何将在线音频转换为mp3格式? 潇潇:是的,我确实有过这个需求。在网上找到了一些工具和方法,可以帮助我们完成这个任务。 飒飒:那太好了!你能告诉我一些详细的…

【新版系统架构】系统架构设计师教程全篇知识点提炼

第一章-绪论 架构的定义: 1、架构体现在组件中的一个系统的基本组织、彼此的关系和环境的关系及指导它的设计和发展的原则 2、系统是组织起来完成某一特定功能或一组功能的组件集 3、环境或者上下文决定了对这个系统的开发、运作、政策以及会对系统造成其他影响的…