使用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 相关文章推荐
在Linux中通过Python脚本访问mdb数据库的方法
May 06 Python
Python中字符串对齐方法介绍
May 21 Python
python中函数传参详解
Jul 03 Python
python实现比较文件内容异同
Jun 22 Python
Python3.7 新特性之dataclass装饰器
May 27 Python
python自动循环定时开关机(非重启)测试
Aug 26 Python
Python3搭建http服务器的实现代码
Feb 11 Python
python求前n个阶乘的和实例
Apr 02 Python
tensorflow常用函数API介绍
Apr 19 Python
Python生成随机验证码代码实例解析
Jun 09 Python
Python如何解除一个装饰器
Aug 07 Python
浅析python 通⽤爬⾍和聚焦爬⾍
Sep 28 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安装为Apache DSO
2006/10/09 PHP
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
PHP 清空varnish 缓存的详解(包括指定站点下的)
2013/06/20 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
2015/11/10 PHP
PHP new static 和 new self详解
2017/02/19 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
简明json介绍
2008/09/28 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
python try except 捕获所有异常的实例
2018/10/18 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
2020/04/01 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
python 实现客户端与服务端的通信
2020/12/23 Python
数据库专业英语
2012/11/30 面试题
什么是View State?
2013/01/27 面试题
八一建军节演讲稿
2014/09/10 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
师德先进个人材料
2014/12/20 职场文书
催款函范本大全
2015/06/24 职场文书
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL