使用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二维码生成库qrcode安装和使用示例
Dec 16 Python
基于Python实现通过微信搜索功能查看谁把你删除了
Jan 27 Python
关于Python面向对象编程的知识点总结
Feb 14 Python
python编程之requests在网络请求中添加cookies参数方法详解
Oct 25 Python
python实现淘宝购物系统
Oct 25 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
用python求一重积分和二重积分的例子
Dec 06 Python
python实现tail实时查看服务器日志示例
Dec 24 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
python实现简单文件读写函数
Feb 25 Python
Python函数式编程中itertools模块详解
Sep 15 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
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
Python threading.local代码实例及原理解析
2020/03/16 Python
如何在Django中使用聚合的实现示例
2020/03/23 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
CSS3 简写animation
2012/05/10 HTML / CSS
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
澳大利亚相机之家:Camera House
2017/11/30 全球购物
物业保安员岗位职责制度
2014/01/30 职场文书
志愿者服务感言
2014/02/27 职场文书
给老婆的检讨书
2015/01/27 职场文书
大足石刻导游词
2015/02/02 职场文书
九华山导游词
2015/02/03 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript