当前位置: 首页 > article >正文

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)

最终效果

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


http://www.kler.cn/a/459691.html

相关文章:

  • C# 设计模式(结构型模式):组合模式
  • JS实现SVG的TEXT标签自动换行功能
  • Nacos服务注册和发现
  • 【C语言 采集数据 精简排序】
  • Java网络套接字
  • SQL 中的 EXISTS
  • 【CSS in Depth 2 精译_094】16.2:CSS 变换在动效中的应用(下)——导航菜单的文本标签“飞入”特效与交错渲染效果的实现
  • Android 14.0 设置默认屏幕亮度百分比
  • [Pro Git#2] 分支管理 | branch fix_bug , feature | 处理合并冲突
  • 微信小程序:定义页面标题,动态设置页面标题,json
  • Flink的三种时间语义
  • 在 Ubuntu 下通过 Docker 部署 Nginx 服务器
  • 《机器学习》从入门到实战——逻辑回归
  • Spring Boot日志处理
  • hadoop sql 执行log
  • ARM200~500部署
  • 第11关:博客系统之查询博客评论
  • 揭秘 Fluss 架构组件
  • 手撕算法-严刑拷打
  • 基础数据结构--二叉树
  • 搭建知识中台:大健康零售行业的数字化升级之路
  • Apollo 自动驾驶全景解析
  • keepalived详细笔记
  • PHP语言的软件开发工具
  • 金蝶V10中间件的使用
  • STM32 软件I2C读写