使用wxPython获取系统剪贴板中的数据的教程
作者:goldensun 发布时间:2023-11-05 18:43:41
标签:Python
涉及到开发桌面程序,尤其是文本处理,剪贴板就很常用,不像 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()


猜你喜欢
- 1、python教程基于 python3.10 的持续解读,旨在快速回忆加深理解,节约自己的时间成本1.1 概述python 是一门易于学习
- websocket网易聊天室?web微信?直播?假如你工作以后,你的老板让你来开发一个内部的微信程序,你需要怎么办?我们先来分析一下里面的技
- numpy矩阵数值太多不能全部显示,可以运行以下命令令全部数值展示出来np.set_printoptions(threshold='
- 引言随着ES6新语法的不断迭代更新,已经出现了许多常用的工具api。今天我将为大家推荐两款明星api,它们就是Object.freeze和O
- 本文实例讲述了Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作。分享给大家供大家参考,具体如下:Thinkphp5.0
- Python编程:函数函数是带名字的代码块,用于完成具体的工作。要执行函数定义的特定任务,可调用该函数。需要在程序中多次执行同一项任务时,你
- 1 界面美化1.1 Chinese (Simplified) | 简体中文1.2 vscode-icons | 美化图标1.3 Bracke
- count()方法返回obj出现在列表的次数。语法以下是count()方法的语法:list.count(obj)参数
- JavaScript 变量可以是局部变量或全局变量。私有变量可以用到闭包。全局变量函数可以访问是有函数内部定义的变量,如:实例functio
- os 包 和 bufio 包Go 标准库的 os 包,为我们提供很多操作文件的函数,如 Open(name) 打开文件、Create(nam
- 一直以来,Web 字体背着单调的恶名,因为想在网页上显示一种字体,该字体文件本身必须存在于用户的电脑中,由于这个限制,加上 Web 用户可能
- 对于字典,通过“键”获得“值”非常简单,但通过“值”获得“键”则需绕些弯子。一、通用:自行定义函数方式假设:输入:一个字典(dic)+要找的
- 百度,谷歌之后都说用setHintSize(self,QCore.QSize(width,height)),然并卵,后来用qss修改就可以了
- 目录一、Go调用C代码的原理二、在Go中使用C语言的类型1、原生类型数值类型指针类型字符串类型数组类型2、自定义类型枚举(enum)结构体(
- 一、导入excel文件和相关库import pandas;import matplotlib;from pandas.tools.plott
- 如何在页面错误时向数据库中添加记录?在ASP中,我在页面中添加了On Error Resume Next错误命令,以消除和避免程序错误。现在
- 起步在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作。例如,有一个类实例对象foo,它有一个name属性
- Mysql的增删改查语句简单实现增加记录:insert into tablename(...) values(...)//如果增加的记录包括
- 这段时间在做项目的过程中,遇到一个模块,数据之间的联系很复杂,在建表的时候就很纠结,到底该怎么去处理这些复杂的数据呢,是单表查询,然后在业务
- 1、基本原理访问网站扫码登录页,网站给浏览器返回一个二维码和一个唯一标志KEY浏览器开启定时轮询服务器,确认KEY对应的扫码结果用户使用ap