使用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实现的重启关机程序实例
Aug 21 Python
Python自动调用IE打开某个网站的方法
Jun 03 Python
深入探究Django中的Session与Cookie
Jul 30 Python
TensorFlow saver指定变量的存取
Mar 10 Python
使用Python和xlwt向Excel文件中写入中文的实例
Apr 21 Python
利用Python+阿里云实现DDNS动态域名解析的方法
Apr 01 Python
python使用装饰器作日志处理的方法
Jul 11 Python
python Popen 获取输出,等待运行完成示例
Dec 30 Python
Python多进程编程multiprocessing代码实例
Mar 12 Python
python logging.info在终端没输出的解决
May 12 Python
tensorflow 动态获取 BatchSzie 的大小实例
Jun 30 Python
浅析Python __name__ 是什么
Jul 07 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
flash用php连接数据库的代码
2011/04/21 PHP
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
php字符串截取函数用法分析
2014/11/25 PHP
PHP时间函数使用详解
2019/03/21 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
javascript dom 基本操作小结
2010/04/11 Javascript
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
js播放wav文件(源码)
2013/04/22 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
详解如何使用nvm管理Node.js多版本
2019/05/06 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
零基础写python爬虫之urllib2使用指南
2014/11/05 Python
Python实现简单多线程任务队列
2016/02/27 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
python不同系统中打开方法
2020/06/23 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
某公司.Net方向面试题
2014/04/24 面试题
厂长助理岗位职责
2013/12/27 职场文书
医务人员自我评价
2014/01/26 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
2015年大学生工作总结
2015/04/21 职场文书
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python