Prompt工程--AI开发--可置顶粘贴小工具

PROMPT

1.背景要求:
	我需要开发一个简单的粘贴小工具,用于方便地粘贴和管理文本内容。该工具需要具备以下功能:
	粘贴功能:提供一个文本框,用户可以粘贴内容。
	窗口置顶:支持窗口置顶功能,确保窗口不会被其他窗口遮挡。
	黑暗模式:支持切换黑暗模式,适应不同的使用环境。
	字体放大缩小:支持动态调整文本框的字体大小。
	界面简洁:界面简洁易用,功能按钮布局合理。
2. 技术选型
	编程语言:Python
	GUI 框架:PyQt5
	打包工具:Nuitka
3. 功能需求
	核心功能
		粘贴功能:
		提供一个文本框,用户可以粘贴内容。
		文本框支持多行文本。
	窗口置顶:
		提供一个按钮,点击后窗口置顶,再次点击取消置顶。
		按钮文本动态显示当前状态(如“置顶”和“置顶中”)。
	黑暗模式:
		提供一个按钮,点击后切换黑暗模式,再次点击恢复默认模式。
		按钮文本动态显示当前状态(如“浅🌞”和“黑🌙”)。
		黑暗模式下,窗口背景、菜单栏和文本框的颜色变为深色。
	字体放大缩小:
		提供两个按钮,分别用于放大和缩小文本框的字体大小。
		字体大小调整范围:最小 1pt,最大无限制。
	界面布局:
		主窗口大小为 400x500,居中显示。
		菜单栏位于窗口顶部,包含置顶按钮、黑暗模式按钮、放大和缩小按钮。
		文本框占据主窗口的中央区域。
4.非功能需求
	启动速度:
		程序启动速度快,用户体验流畅。
		跨平台支持:
		支持 Windows、macOS 和 Linux 系统。
	可扩展性:
		代码结构清晰,便于后续功能扩展。

参考代码

主窗口模块:

class CustomWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("粘贴小工具")
        self.resize(400, 500)
        self.center_window()
        self.init_ui()

    def init_ui(self):
        # 创建文本编辑器
        self.text_edit = QTextEdit(self)
        font = self.text_edit.font()
        font.setPointSize(12)
        self.text_edit.setFont(font)
        self.setCentralWidget(self.text_edit)

        # 创建菜单栏
        self.menu_bar = QMenuBar(self)
        self.setMenuBar(self.menu_bar)
        self.create_actions()

菜单栏模块:

    def create_actions(self):
        # 置顶按钮
        self.topmost_action = QAction("置顶", self)
        self.topmost_action.setCheckable(True)
        self.topmost_action.triggered.connect(self.toggle_topmost)
        self.menu_bar.addAction(self.topmost_action)

        # 黑暗模式按钮
        self.dark_mode_action = QAction("浅🌞", self)
        self.dark_mode_action.setCheckable(True)
        self.dark_mode_action.triggered.connect(self.toggle_dark_mode)
        self.menu_bar.addAction(self.dark_mode_action)

        # 放大和缩小按钮
        self.zoom_in_button = QPushButton("放大", self)
        self.zoom_in_button.clicked.connect(self.zoom_in)
        self.zoom_out_button = QPushButton("缩小", self)
        self.zoom_out_button.clicked.connect(self.zoom_out)

        # 将按钮添加到菜单栏右侧
        self.menu_bar.setCornerWidget(self.create_button_widget())

黑暗模式模块:



    def toggle_dark_mode(self, checked):
        self.is_dark_mode = checked
        self.set_dark_mode(self.is_dark_mode)
        # 切换按钮文本
        if self.is_dark_mode:
            self.dark_mode_action.setText("黑🌙")
        else:
            self.dark_mode_action.setText("浅🌞")

    def set_dark_mode(self, enabled):
        if enabled:
            # 设置黑暗模式样式表
            dark_stylesheet = """
                QWidget {
                    background-color: #2D2D2D;
                    color: #FFFFFF;
                }
                QMenuBar {
                    background-color: #2D2D2D;
                    color: #FFFFFF;
                }
                QMenuBar::item {
                    background-color: transparent;
                    color: #FFFFFF;
                }
                QMenuBar::item:selected {
                    background-color: #555555;
                }
                QTextEdit {
                    background-color: #1E1E1E;
                    color: #FFFFFF;
                }
                QPushButton {
                    background-color: #555555;
                    color: #FFFFFF;
                    border: none;
                    padding: 5px;
                }
                QPushButton:hover {
                    background-color: #777777;
                }
            """
            self.setStyleSheet(dark_stylesheet)
        else:
            # 恢复默认样式表
            self.setStyleSheet("")

放大缩小功能:

    def zoom_in(self):
        """放大文本编辑器字体"""
        font = self.text_edit.font()
        font.setPointSize(font.pointSize() + 1)
        self.text_edit.setFont(font)

    def zoom_out(self):
        """缩小文本编辑器字体"""
        font = self.text_edit.font()
        if font.pointSize() > 1:  # 确保字体大小不小于 1
            font.setPointSize(font.pointSize() - 1)
            self.text_edit.setFont(font)

最终效果

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利用Abel_Cain软件实现ARP欺骗

ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主…

STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器

STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器 1、按键控制 LED 按键:常见的输入设备,按下导通,松手断开 按键抖动:由子按键内部使用的是机械式弹簧片来进行通断的、所以在按下和松手的瞬间会伴随有一连串的抖动 按键控制LED接线图: 要有工程…

深入解析MySQL索引结构:从数组到B+树的演变与优化

前言: 在数据库查询中,索引是一种关键的性能优化工具。然而,索引的失效可能导致查询效率大幅下降。为了更好地理解索引的工作原理及规避其失效,深入了解索引结构的演变过程尤为重要。 MySQL 的索引数据结构从简单到复杂&#xff0…

window如何将powershell以管理员身份添加到右键菜单?(按住Shift键显示)

window如何将powershell以管理员身份添加到右键菜单? 在 Windows 中,将 PowerShell 以管理员身份添加到右键菜单,可以让你在需要提升权限的情况下快速打开 PowerShell 窗口。以下是详细的步骤,包括手动编辑注册表和使用注册表脚本…

Redis--持久化策略(AOF与RDB)

持久化策略(AOF与RDB) 持久化Redis如何实现数据不丢失?RDB 快照是如何实现的呢?执行时机RDB原理执行快照时,数据能被修改吗? AOF持久化是怎么实现的?AOF原理三种写回策略AOF重写机制 RDB和AOF合…

uniapp-vue3(下)

关联链接:uniapp-vue3(上) 文章目录 七、咸虾米壁纸项目实战7.1.咸虾米壁纸项目概述7.2.项目初始化公共目录和设计稿尺寸测量工具7.3.banner海报swiper轮播器7.4.使用swiper的纵向轮播做公告区域7.5.每日推荐滑动scroll-view布局7.6.组件具名…

计算机网络 (16)数字链路层的几个共同问题

一、封装成帧 封装成帧是数据链路层的一个基本问题。数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。封装成帧就是在一段数据的前后分别添加首部和尾部,构成了一个帧。接收端在收到物理层上交的比特流后…

操作系统论文导读(八):Schedulability analysis of sporadic tasks with multiple criticality specifications——具有多个

Schedulability analysis of sporadic tasks with multiple criticality specifications——具有多个关键性规范的零星任务的可调度性分析 目录 一、论文核心思想 二、基本定义 2.1 关键性指标 2.2 任务及相关参数定义 2.3 几个基础定义 三、可调度性分析 3.1 调度算法分…

「教程」抖音短剧小程序源码开发后上架的教程及好处

上线抖音短剧小程序的步骤 注册账号与准备资料:首先需要在抖音开放平台官网注册一个抖音小程序账号,并完成相关认证,获取小程序开发权限。同时,要准备好短剧相关的素材,如视频、音频、剧本、封面图片等 开发或选择小程…

omi friend实战记录

一、简介 omi friend是国外githab上开源的一个“AI硬件”的制作教程,它的形状是个三角形,属于项链佩戴这类的。可以接入llm进行对话,他有麦克风、扬声器,还有电池。外形好看,功能实用。还有专属的一系列app可以供方便…

活动预告 |【Part2】 Azure 在线技术公开课:迁移和保护 Windows Server 和 SQL Server 工作负载

课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft 云技术的了解。参加我们举办的“迁移和保护 Windows Server 和 SQL Server 工作负载”活动,了解 Azure 如何为将工作负载…

hive-sql 连续登录五天的用户

with tmp as (select 梁牧泽 as uid, 2023-03-03 as dt union allselect 梁牧泽 as uid, 2023-03-04 as dt union allselect 梁牧泽 as uid, 2023-03-05 as dt union allselect 梁牧泽 as uid, 2023-03-07 as dt union allselect 梁牧泽 as uid, 2023-03-08 as dt union allsel…

(NDSS2024)论文阅读——仅低质量的训练数据?用于检测加密恶意网络流量的稳健框架

文章基本信息 作者:Yuqi Qing et al. (清华大学李琦团队) 代码 文章 摘要 存在问题:收集包含足够数量的带有正确标签的加密恶意数据的训练数据集是具有挑战性的,当使用低质量的训练数据训练机器学习模型时&#xff…

【心随行动】让行动轨迹和复盘形成闭环螺旋式上升

为何会迷茫,因为不知过去未谋将来。认真复盘可以帮达到理想的彼岸!!! 文章目录 为何会迷茫,因为不知过去未谋将来。认真复盘可以帮达到理想的彼岸!!!日复盘模板:时间&…

LabVIEW生物医学信号虚拟实验平台

介绍了一款基于LabVIEW的多功能生物医学信号处理实验平台的设计和实现。平台通过实践活动加强学生对理论的理解和应用能力,特别是在心电图(ECG)和脑电图(EEG)的信号处理方面。实验平台包括信号的滤波、特征提取和频谱分析等功能,能直观体验和掌握生物医学…

Ubuntu安装MinIO

注:本文章的ubuntu的版本为:ubuntu-20.04.6-live-server-amd64。 Ubuntu(在线版) 更新软件源 sudo apt-get update 通过wget下载MinIO二进制文件 sudo wget -P /usr/local/bin https://dl.min.io/server/minio/release/linux…

光纤收发器技术参数详解

1.1系统架构 1.2光纤收发器发展历程 数据速率 模块 最新修订年份 描述 应用 1 Gbps GBIC 2000年 千兆接口转换器 千兆以太网、SDH/SONET (2.5 Gb/s) 和光纤通道 (4Gb/s) 10 Gbps SFP 2001年 小型可插拔 千兆以太网、SDH/SONET (2.5 Gb/s) 和光纤通道 (4Gb/s)…

数据结构--顺序表(详解)

欢迎大家来到我的博客~欢迎大家对我的博客提出指导,有错误的地方会改进的哦~点击这里了解更多内容 目录 一、线性表二、顺序表 一、线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结…

C#高级篇 反射和属性详解【代码之美系列】

🎀🎀🎀代码之美系列目录🎀🎀🎀 一、C# 命名规则规范 二、C# 代码约定规范 三、C# 参数类型约束 四、浅析 B/S 应用程序体系结构原则 五、浅析 C# Async 和 Await 六、浅析 ASP.NET Core SignalR 双工通信 …

C语言程序设计:程序设计和C语言

文章目录 C语言程序设计:程序设计和C语言一、计算机程序和语言计算机语言C语言的发展及其特点C语言的发展历程C语言的特点 二、编译器安装三、最简单的C 语言程序简单的C语言程序介绍程序执行流程:输出: 求两个整数之和运行结果: …