使用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操作xml文件详细介绍
Jun 09 Python
深入理解Python中的元类(metaclass)
Feb 14 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
Jun 29 Python
Python与Java间Socket通信实例代码
Mar 06 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
python hbase读取数据发送kafka的方法
Dec 27 Python
在python中做正态性检验示例
Dec 09 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
Feb 18 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
使用Django实现把两个模型类的数据聚合在一起
Mar 28 Python
Python rabbitMQ如何实现生产消费者模式
Aug 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
web方式ftp
2006/10/09 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
ThinkPHP文件缓存类代码分享
2015/04/22 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
常用DOM整理
2015/06/16 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
JavaScript中的await/async的作用和用法
2016/10/31 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
django之常用命令详解
2016/06/30 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
Python 加密与解密小结
2018/12/06 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
2019/08/27 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
python3.7添加dlib模块的方法
2020/07/01 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
介绍一下Java中标识符的命名规则
2014/02/03 面试题
视光学毕业生自荐书范文
2014/02/13 职场文书
春晚观后感
2015/06/11 职场文书
2016年教师新年寄语
2015/08/18 职场文书
2016年党建工作简报
2015/11/26 职场文书
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL