使用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中对list去重的多种方法
Sep 18 Python
Python常用随机数与随机字符串方法实例
Apr 09 Python
利用Python中的输入和输出功能进行读取和写入的教程
Apr 14 Python
有趣的python小程序分享
Dec 05 Python
查看Django和flask版本的方法
May 14 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
如何使用django的MTV开发模式返回一个网页
Jul 22 Python
利用python-pypcap抓取带VLAN标签的数据包方法
Jul 23 Python
基于python的itchat库实现微信聊天机器人(推荐)
Oct 29 Python
numpy.array 操作使用简单总结
Nov 08 Python
pytorch 自定义卷积核进行卷积操作方式
Dec 30 Python
利用Pytorch实现简单的线性回归算法
Jan 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
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PHP sdk实现在线打包代码示例
2020/12/09 PHP
JS中Iframe之间传值的方法
2013/03/11 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
浅谈原生JS中的延迟脚本和异步脚本
2017/07/12 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
详解pycharm自动import所需的库的操作方法
2020/11/30 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
特色蛋糕店创业计划书
2014/01/28 职场文书
思想品德自我评价
2014/02/04 职场文书
学雷锋演讲稿
2014/03/04 职场文书
医学专业自荐信
2014/06/14 职场文书
机械生产实习心得体会
2016/01/22 职场文书
接收函
2019/04/22 职场文书
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL