使用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实现udp数据报传输的方法
Sep 26 Python
python实现简单的TCP代理服务器
Oct 08 Python
Python和JavaScript间代码转换的4个工具
Feb 22 Python
python中zip()方法应用实例分析
Apr 16 Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 Python
简单了解Python生成器是什么
Jul 02 Python
Python内存管理实例分析
Jul 10 Python
python list数据等间隔抽取并新建list存储的例子
Nov 27 Python
python实现输入三角形边长自动作图求面积案例
Apr 12 Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 Python
python 模拟登陆github的示例
Dec 04 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在程序中将网页生成word文档并提供下载的代码
2012/10/09 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
vue loadmore组件上拉加载更多功能示例代码
2017/07/19 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
[05:48]DOTA2英雄梦之声vol21 屠夫
2014/06/20 DOTA
Python标准异常和异常处理详解
2015/02/02 Python
Python3使用requests发闪存的方法
2016/05/11 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
用 Python 制作地球仪的方法
2020/04/24 Python
彻底解决Python包下载慢问题
2020/11/15 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
电大本科自我鉴定
2014/02/05 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
材料工程专业毕业生求职信
2014/03/04 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
高中政治教师教学反思
2016/02/23 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript