使用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学习资料
Feb 08 Python
python二叉树的实现实例
Nov 21 Python
在Django中创建第一个静态视图
Jul 15 Python
Python实现屏幕截图的代码及函数详解
Oct 01 Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
python之生产者消费者模型实现详解
Jul 27 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
python通过cython加密代码
Dec 11 Python
Jupyter notebook 输出部分显示不全的解决方案
Apr 24 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
php生成EXCEL的东东
2006/10/09 PHP
PHP入门速成教程
2007/03/19 PHP
PHP中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
canvas实现刮刮卡效果
2017/03/14 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
vue-router传参用法详解
2019/01/19 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
python strip()函数 介绍
2013/05/24 Python
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
python3字符串操作总结
2019/07/24 Python
matplotlib基础绘图命令之bar的使用方法
2020/08/13 Python
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
家长对小学生的评语
2014/01/28 职场文书
2015年质检工作总结
2015/05/04 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python
MySQL系列之二 多实例配置
2021/07/02 MySQL