使用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实用代码片段收集贴
Jun 03 Python
Python循环语句之break与continue的用法
Oct 14 Python
实例解析Python中的__new__特殊方法
Jun 02 Python
Python读取word文本操作详解
Jan 22 Python
python实现多人聊天室
Mar 31 Python
使用python制作一个为hex文件增加版本号的脚本实例
Jun 12 Python
Python实现Selenium自动化Page模式
Jul 14 Python
python:动态路由的Flask程序代码
Nov 22 Python
Python使用Pandas库常见操作详解
Jan 16 Python
python itsdangerous模块的具体使用方法
Feb 17 Python
解决Django Haystack全文检索为空的问题
May 19 Python
pycharm软件实现设置自动保存操作
Jun 08 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 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
PHP实现一维数组转二维数组的方法
2015/02/25 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
formValidator3.3的ajaxValidator一些异常分析
2011/07/12 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
jquery实现下拉菜单的手风琴效果
2017/07/23 jQuery
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
python遍历路径破解表单的示例
2020/11/21 Python
python3实现简单飞机大战
2020/11/29 Python
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
女性时尚在线:IVRose
2019/02/23 全球购物
办公室文员工作自我评价
2013/12/01 职场文书
成品仓管员岗位职责
2013/12/11 职场文书
工程专业毕业生自荐信范文
2013/12/25 职场文书
室内设计专业毕业生求职信
2014/05/02 职场文书
大班亲子运动会方案
2014/06/10 职场文书
校本研修个人总结
2015/02/28 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
Python正则表达式中flags参数的实例详解
2022/04/01 Python
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle