使用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实现的各种排序算法代码
Mar 04 Python
Python中的数据对象持久化存储模块pickle的使用示例
Mar 03 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
Python编程图形库之Pillow使用方法讲解
Dec 28 Python
Python解析命令行读取参数之argparse模块
Jul 26 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
Oct 30 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
Oct 30 Python
Python matplotlib以日期为x轴作图代码实例
Nov 22 Python
关于Python3 lambda函数的深入浅出
Nov 27 Python
Python数据正态性检验实现过程
Apr 18 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
python将字典内容写入json文件的实例代码
Aug 12 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
2016/03/18 PHP
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
Python实现SMTP发送邮件详细教程
2021/03/02 Python
python一键升级所有pip package的方法
2017/01/16 Python
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
Python 绘图和可视化详细介绍
2017/02/11 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
python 获取等间隔的数组实例
2019/07/04 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
基于Python测试程序是否有错误
2020/05/16 Python
python实现二分查找算法
2020/09/18 Python
HTML5 canvas基本绘图之绘制五角星
2016/06/27 HTML / CSS
销售实习自我鉴定
2013/12/07 职场文书
员工工作表扬信范文
2014/01/13 职场文书
经典促销广告词大全
2014/03/19 职场文书
教师产假请假条范文
2014/04/10 职场文书
前台岗位职责
2015/02/13 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python