使用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 相关文章推荐
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
python随机取list中的元素方法
Apr 08 Python
python opencv3实现人脸识别(windows)
May 25 Python
Python列表推导式与生成器用法分析
Aug 02 Python
对pandas中两种数据类型Series和DataFrame的区别详解
Nov 12 Python
Python 判断图像是否读取成功的方法
Jan 26 Python
Python re 模块findall() 函数返回值展现方式解析
Aug 09 Python
Django 自定义分页器的实现代码
Nov 24 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
Python extract及contains方法代码实例
Sep 11 Python
python如何绘制疫情图
Sep 16 Python
python利用paramiko实现交换机巡检的示例
Sep 22 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
杏林同学录(七)
2006/10/09 PHP
使用Xdebug调试和优化PHP程序之[1]
2007/04/17 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
php强制下载文件函数
2016/08/24 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
Python中isnumeric()方法的使用简介
2015/05/19 Python
Python实现统计单词出现的个数
2015/05/28 Python
python脚本设置超时机制系统时间的方法
2016/02/21 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
虚拟机下载python是否需要联网
2020/07/27 Python
python 装饰器重要在哪
2021/02/14 Python
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
银行内勤岗位职责
2014/04/09 职场文书
捐助倡议书范文
2014/04/15 职场文书
大学生工作自荐书
2014/06/16 职场文书
校园广播稿范文
2015/08/19 职场文书
五年级数学教学反思
2016/02/16 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
sqlserver连接错误之SQL评估期已过的问题解决
2022/03/23 SQL Server
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js