使用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 13 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
May 08 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
python整小时 整天时间戳获取算法示例
Feb 20 Python
python多线程http压力测试脚本
Jun 25 Python
Python利用WMI实现ping命令的例子
Aug 14 Python
Python使用matplotlib 模块scatter方法画散点图示例
Sep 27 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 Python
python代码如何实现余弦相似性计算
Feb 09 Python
python对数组进行排序,并输出排序后对应的索引值方式
Feb 28 Python
python 在threading中如何处理主进程和子线程的关系
Apr 25 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
Jun 05 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获取mysql数据库中的所有表名的代码
2011/04/23 PHP
PHP简洁函数小结
2011/08/12 PHP
详解PHP导入导出CSV文件
2014/11/03 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
2013/01/17 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
深入理解Javascript作用域与变量提升
2013/12/09 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
在vue中使用v-bind:class的选项卡方法
2018/09/27 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
python实现的简单FTP上传下载文件实例
2015/06/30 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
Python 中@property的用法详解
2020/01/15 Python
Python 在函数上添加包装器
2020/07/28 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
Brasty波兰:香水、化妆品、手表网上商店
2019/04/15 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
写好自荐信的要点
2013/11/06 职场文书
获奖感言怎么写
2015/07/31 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书