使用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 中__name__ = '__main__' 的作用
Jul 05 Python
python基础教程之Hello World!
Aug 29 Python
详解python中的json的基本使用方法
Dec 21 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
Python实现的读写json文件功能示例
Jun 05 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
Jul 03 Python
python3 enum模块的应用实例详解
Aug 12 Python
opencv 获取rtsp流媒体视频的实现方法
Aug 23 Python
用Python画一个LinkinPark的logo代码实例
Sep 10 Python
python文件排序的方法总结
Sep 13 Python
Python基础之变量的相关知识总结
Jun 23 Python
Python Flask搭建yolov3目标检测系统详解流程
Nov 07 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
1 Tube Radio
2021/03/02 无线电
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
canvas实现钟表效果
2017/02/13 Javascript
JS异步加载的三种实现方式
2017/03/16 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
vue刷新和tab切换实例
2018/02/11 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
2019/05/10 Javascript
[00:11]战神迅矛
2019/03/06 DOTA
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
Python中的模块和包概念介绍
2015/04/13 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
linux下安装python3和对应的pip环境教程详解
2019/07/01 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
Python持续监听文件变化代码实例
2020/07/22 Python
django跳转页面传参的实现
2020/09/17 Python
CSS3 实现雷达扫描图的示例代码
2020/09/21 HTML / CSS
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
计算机专业毕业生的自我评价
2013/11/18 职场文书
Linux安装Docker详细教程
2022/07/07 Servers