wxPython使用系统剪切板的方法

yipeiwu_com6年前Python基础

本文实例讲述了wxPython使用系统剪切板的方法。分享给大家供大家参考。具体如下:

程序运行效果如下图所示:

主要代码如下:

import wx
########################################################################
class ClipboardPanel(wx.Panel):
  """"""
  #----------------------------------------------------------------------
  def __init__(self, parent):
    """Constructor"""
    wx.Panel.__init__(self, parent)
    lbl = wx.StaticText(self, label="Enter text to copy to clipboard:")
    self.text = wx.TextCtrl(self, style=wx.TE_MULTILINE)
    copyBtn = wx.Button(self, label="Copy")
    copyBtn.Bind(wx.EVT_BUTTON, self.onCopy)
    copyFlushBtn = wx.Button(self, label="Copy and Flush")
    copyFlushBtn.Bind(wx.EVT_BUTTON, self.onCopyAndFlush)
    sizer = wx.BoxSizer(wx.VERTICAL)
    sizer.Add(lbl, 0, wx.ALL, 5)
    sizer.Add(self.text, 1, wx.EXPAND)
    sizer.Add(copyBtn, 0, wx.ALL|wx.CENTER, 5)
    sizer.Add(copyFlushBtn, 0, wx.ALL|wx.CENTER, 5)
    self.SetSizer(sizer)
  #----------------------------------------------------------------------
  def onCopy(self, event):
    """"""
    self.dataObj = wx.TextDataObject()
    self.dataObj.SetText(self.text.GetValue())
    if wx.TheClipboard.Open():
      wx.TheClipboard.SetData(self.dataObj)
      wx.TheClipboard.Close()
    else:
      wx.MessageBox("Unable to open the clipboard", "Error")
  #----------------------------------------------------------------------
  def onCopyAndFlush(self, event):
    """"""
    self.dataObj = wx.TextDataObject()
    self.dataObj.SetText(self.text.GetValue())
    if wx.TheClipboard.Open():
      wx.TheClipboard.SetData(self.dataObj)
      wx.TheClipboard.Flush()
    else:
      wx.MessageBox("Unable to open the clipboard", "Error")
    self.GetParent().Close()
########################################################################
class ClipboardFrame(wx.Frame):
  """"""
  #----------------------------------------------------------------------
  def __init__(self):
    """Constructor"""
    wx.Frame.__init__(self, None, title="Clipboard Tutorial")
    panel = ClipboardPanel(self)
    self.Show()
if __name__ == "__main__":
  app = wx.App(False)
  frame = ClipboardFrame()
  app.MainLoop()

希望本文所述对大家的Python程序设计有所帮助。

相关文章

python 计算数组中每个数字出现多少次--“Bucket”桶的思想

python 计算数组中每个数字出现多少次--“Bucket”桶的思想

题目: 解法一:比较元素是否相等 思路说明: 这种应该是普通人最先想到的解法,先获取到数组之后进行有小到大排序,然后初始化一个min=0(代表新数字的开始角标),然后遍历新数组的每一个...

python循环定时中断执行某一段程序的实例

问题说明 最近在写爬虫,由于单个账号访问频率太高会被封,所以需要在爬虫执行一段时间间隔后自己循环切换账号 所以就在想,有没有像单片机那样子设置一个定时中断,再定义一个中断入口,这样子每隔...

python之cv2与图像的载入、显示和保存实例

python之cv2与图像的载入、显示和保存实例

本文是OpenCV 2 Computer Vision Application Programming Cookbook读书笔记的第一篇。在笔记中将以Python语言改写每章的代码。 P...

Python基于Opencv来快速实现人脸识别过程详解(完整版)

Python基于Opencv来快速实现人脸识别过程详解(完整版)

前言 随着人工智能的日益火热,计算机视觉领域发展迅速,尤其在人脸识别或物体检测方向更为广泛,今天就为大家带来最基础的人脸识别基础,从一个个函数开始走进这个奥妙的世界。 首先看一下本实验需...

使用python实现http及ftp服务进行数据传输的方法

服务器之间的http数据传输 直接使用python内置的http服务: python -m SimpleHTTPServer 8000 此时,输入指令的目录就已经开启了http服务...