使用wxPython获取系统剪贴板中的数据的教程


Posted in Python onMay 06, 2015

涉及到开发桌面程序,尤其是文本处理,剪贴板就很常用,不像 java 中那么烦锁,wxpython 中访问剪贴板非常简单,寥寥几句足以。

# 取得剪贴板并确保其为打开状态
text_obj = wx.TextDataObject()
wx.TheClipboard.Open()
if wx.TheClipboard.IsOpened() or wx.TheClipboard.Open():
  # do something...
  wx.TheClipboard.Close()

取值:

if wx.TheClipboard.GetData(text_obj):
  text = text_obj.GetText()

写值:

text_obj.SetText(‘要写入的值')
wx.TheClipboard.SetData(text_obj)

下面的例子中,点击 Copy 会将文本框中的值复制到剪贴板,点击 Paste 会将剪贴板中的文本粘贴到文本框中。

"""
Get text from and put text on the clipboard.
"""

import wx

class MyFrame(wx.Frame):
  def __init__(self):
    wx.Frame.__init__(self, None, title='Accessing the clipboard', size=(400, 300))

    # Components
    self.panel = wx.Panel(self)
    self.text = wx.TextCtrl(self.panel, pos=(10, 10), size=(370, 220))
    self.copy = wx.Button(self.panel, wx.ID_ANY, label='Copy', pos=(10, 240))
    self.paste = wx.Button(self.panel, wx.ID_ANY, label='Paste', pos=(100, 240))

    # Event bindings.
    self.Bind(wx.EVT_BUTTON, self.OnCopy, self.copy)
    self.Bind(wx.EVT_BUTTON, self.OnPaste, self.paste)

  def OnCopy(self, event):
    text_obj = wx.TextDataObject()
    text_obj.SetText(self.text.GetValue())
    if wx.TheClipboard.IsOpened() or wx.TheClipboard.Open():
      wx.TheClipboard.SetData(text_obj)
      wx.TheClipboard.Close()

  def OnPaste(self, event):
    text_obj = wx.TextDataObject()
    if wx.TheClipboard.IsOpened() or wx.TheClipboard.Open():
      if wx.TheClipboard.GetData(text_obj):
        self.text.SetValue(text_obj.GetText())
      wx.TheClipboard.Close()

app = wx.App(False)
frame = MyFrame()
frame.Show(True)
app.MainLoop()

Python 相关文章推荐
Python数据结构之Array用法实例
Oct 09 Python
python实现上传下载文件功能
Nov 19 Python
python中的计时器timeit的使用方法
Oct 20 Python
Python多线程threading和multiprocessing模块实例解析
Jan 29 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
Nov 21 Python
python 执行终端/控制台命令的例子
Jul 12 Python
python3的数据类型及数据类型转换实例详解
Aug 20 Python
使用虚拟环境打包python为exe 文件的方法
Aug 29 Python
python 实现生成均匀分布的点
Dec 05 Python
pytorch:model.train和model.eval用法及区别详解
Feb 20 Python
python自动统计zabbix系统监控覆盖率的示例代码
Apr 03 Python
MATLAB 全景图切割及盒图显示的实现步骤
May 14 Python
用Python遍历C盘dll文件的方法
May 06 #Python
使用Python压缩和解压缩zip文件的教程
May 06 #Python
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 #Python
在Linux中通过Python脚本访问mdb数据库的方法
May 06 #Python
python中黄金分割法实现方法
May 06 #Python
使用rpclib进行Python网络编程时的注释问题
May 06 #Python
pymongo给mongodb创建索引的简单实现方法
May 06 #Python
You might like
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
JavaScript中具名函数的多种调用方式总结
2014/11/08 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
canvas的神奇用法
2017/02/03 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
python strip()函数 介绍
2013/05/24 Python
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
python实现的系统实用log类实例
2015/06/30 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
Python中pass的作用与使用教程
2020/11/13 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
德国足球商店:OUTFITTER
2019/05/06 全球购物
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
幼儿园毕业家长感言
2014/02/10 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
大学应届生的自我评价
2014/03/06 职场文书
国际商贸专业自荐信
2014/06/09 职场文书
企业读书活动总结
2014/06/30 职场文书
社区志愿者活动方案
2014/08/18 职场文书
财务工作失职检讨书
2014/11/21 职场文书
停水通知
2015/04/16 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers