使用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 合并文件的具体实例
Aug 08 Python
python实现文件快照加密保护的方法
Jun 30 Python
简析Python的闭包和装饰器
Feb 26 Python
老生常谈Python startswith()函数与endswith函数
Sep 08 Python
Python读取excel指定列生成指定sql脚本的方法
Nov 28 Python
Python编程在flask中模拟进行Restful的CRUD操作
Dec 28 Python
Python之循环结构
Jan 15 Python
在python中利用numpy求解多项式以及多项式拟合的方法
Jul 03 Python
基于Python+Appium实现京东双十一自动领金币功能
Oct 31 Python
Python 异步协程函数原理及实例详解
Nov 13 Python
tensorflow实现从.ckpt文件中读取任意变量
May 26 Python
在 Python 中利用 Pool 进行多线程
Apr 24 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维护文件系统
2006/10/09 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
Python 爬虫学习笔记之正则表达式
2016/09/21 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
Python中的TCP socket写法示例
2018/05/11 Python
使用TensorFlow实现SVM
2018/09/06 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
Street One瑞士:德国现代时装公司
2019/10/09 全球购物
金融专业毕业生推荐信
2013/11/26 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
小学生2014国庆节演讲稿:祖国在我心中
2014/09/21 职场文书
2015年妇女工作总结
2015/05/14 职场文书
2015年思想品德教学工作总结
2015/07/22 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android