PythonIDE Docs
中文
简体中文

clipboard

读取、写入和清空系统剪贴板。

读写系统剪贴板:复制、粘贴、清空文本。

边界:适合用户明确的复制/粘贴动作,不是持久化存储。token / 密码请用 keychain;长期保存文本用 storage。剪贴板是系统共享状态,其他 App 可能改写内容。

#模块概览

说明
导入import clipboard
适合做什么复制链接/代码、粘贴用户剪贴内容、分享前准备
调用时机放在按钮回调;不要在启动时静默 set 覆盖用户剪贴板
推荐顺序用户点击复制 → set → 更新状态;粘贴时 get 并判空
兼容别名get_text() / set_text() 等同于 get() / set()

#快速开始

下面脚本写入、读取并清空剪贴板:

python
import clipboard

clipboard.set("来自 PythonIDE 的文本")
print("剪贴板:", clipboard.get())

clipboard.clear()
print("清空后:", repr(clipboard.get()))

#AppUI 示例

复制和粘贴都放在按钮回调里,操作后给出可见反馈。

python
import appui
import clipboard

state = appui.State(
    text="https://www.python.org",
    status="等待操作",
    preview="—",
)


def update_text(value):
    state.text = value


def copy_text():
    if not state.text.strip():
        state.status = "没有可复制的内容"
        return
    clipboard.set(state.text)
    state.batch_update(
        status="已复制到剪贴板",
        preview=state.text[:60] + ("…" if len(state.text) > 60 else ""),
    )


def paste_text():
    value = clipboard.get()
    if value:
        state.batch_update(
            text=value,
            status="已从剪贴板粘贴",
            preview=value[:60] + ("…" if len(value) > 60 else ""),
        )
    else:
        state.status = "剪贴板为空"


def clear_clipboard():
    clipboard.clear()
    state.batch_update(status="已清空剪贴板", preview="—")


def body():
    return appui.NavigationStack(
        appui.Form([
            appui.Section("文本", [
                appui.TextField("内容", text=state.text, on_change=update_text),
                appui.LabeledContent("预览", value=state.preview),
            ]),
            appui.Section("操作", [
                appui.Button("复制", action=copy_text)
                .button_style("bordered_prominent"),
                appui.Button("粘贴", action=paste_text),
                appui.Button("清空剪贴板", action=clear_clipboard, role="destructive"),
                appui.Text(state.status).foreground_color("secondaryLabel"),
            ]),
        ]).navigation_title("剪贴板")
    )


appui.run(body, state=state)

#API 参考

#速查

API作用
get()读取剪贴板文字 → str(空时 ""
set(text)写入字符串
clear()清空剪贴板
get_text()兼容别名,同 get()
set_text(text)兼容别名,同 set()

#读写

get() — 获取当前剪贴板文本,无内容时返回空字符串。

set(text) — 将字符串写入系统剪贴板,会覆盖当前内容。

python
import clipboard

clipboard.set("要复制的链接")
value = clipboard.get()

clear() — 清空剪贴板(内部写入空字符串)。

python
clipboard.clear()

#Pythonista 兼容别名

别名等价于
get_text()get()
set_text(text)set(text)

旧脚本可直接迁移,无需改调用名。


#常见错误

错误写法后果修正
启动时自动 set静默覆盖用户剪贴板只在用户点击后写入
用剪贴板存 token易被其他 App 读到使用 keychain
复制后无反馈用户不知道是否成功更新 State 状态文案
缓存剪贴板旧值其他 App 改写后仍用旧数据每次粘贴重新 get()

#相关文档

文档用途
keychain安全保存 token / 密码
storage长期保存非敏感配置
原生能力入口MiniApp 场景配方

#预期效果

运行示例后,界面应出现文档描述的目标结果;若与预期不符,先看「失败路径」并按返回值或日志排查。