wxpython 表格粘贴,wxpython在整个应用程序中剪切复制和粘贴

默认情况下,菜单键绑定与Alt-first_-Menu-letter->子菜单“first”字母一起使用。

所选项目的菜单事件应绑定相应的事件处理程序:self.Bind(wx.EVT_MENU, self.on_copy, self.copy)

对于复制方法,首先用鼠标选择要复制的文本。然后,您可以通过以下方式获得焦点小部件(具有要复制的选定字符串的特定textcontrol):

^{pr2}$

通过这种方式,您现在可以从该小部件中获取选定的字符串:self.copied = widget.GetStringSelection()

将复制的文本粘贴到光标所在的textcrl中也是一样。

这里有一个有效的例子:import wx

class MyFrame(wx.Frame):

def __init__(self, *args, **kwds):

kwds["style"] = wx.DEFAULT_FRAME_STYLE

wx.Frame.__init__(self, *args, **kwds)

self.tctrl_1 = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE)

self.tctrl_2 = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE)

self.menubar = wx.MenuBar()

self.test = wx.Menu()

self.copy = wx.MenuItem(self.test, wx.NewId(), "copy", "is_going to copy", wx.ITEM_NORMAL)

self.test.AppendItem(self.copy)

self.paste = wx.MenuItem(self.test, wx.NewId(), "paste", "will paste", wx.ITEM_NORMAL)

self.test.AppendItem(self.paste)

self.menubar.Append(self.test, "Test")

self.SetMenuBar(self.menubar)

self.__set_properties()

self.__do_layout()

self.Bind(wx.EVT_MENU, self.on_copy, self.copy)

self.Bind(wx.EVT_MENU, self.on_paste, self.paste)

def __set_properties(self):

self.SetTitle("frame_1")

def __do_layout(self):

sizer_1 = wx.BoxSizer(wx.VERTICAL)

sizer_2 = wx.BoxSizer(wx.HORIZONTAL)

sizer_2.Add(self.tctrl_1, 1, wx.EXPAND, 0)

sizer_2.Add(self.tctrl_2, 1, wx.EXPAND, 0)

sizer_1.Add(sizer_2, 1, wx.EXPAND, 0)

self.SetSizer(sizer_1)

sizer_1.Fit(self)

self.Layout()

def on_copy(self, event):

widget = self.FindFocus()

self.copied = widget.GetStringSelection()

def on_paste(self, event):

widget = self.FindFocus()

widget.WriteText(self.copied)

if __name__ == "__main__":

app = wx.PySimpleApp(0)

frame = MyFrame(None, -1, "")

frame.Show()

app.MainLoop()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值