⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clipboard.py

📁 pygtk的教程
💻 PY
字号:
#!/usr/bin/env pythonimport pygtkpygtk.require('2.0')import gtk, gobjectclass ClipboardInfo:    passclass ClipboardExample:    # update button label and tooltips    def update_buttons(self):        for i in range(len(self.clipboard_history)):            info = self.clipboard_history[i]            if info:                button = self.buttons[i]                if info.text:                    button.set_label(' '.join(info.text[:16].split('\n')))                if info.targets:                    # put target info in button tootip                    self.button_tips.set_tip(button, info.targets)        return    # singal handler called when clipboard returns target data    def clipboard_targets_received(self, clipboard, targets, info):        if targets:            # have to remove dups since Netscape is broken            targ = {}            for t in targets:                targ[str(t)] = 0            targ = targ.keys()            targ.sort()            info.targets = '\n'.join(targ)        else:            info.targets = None            print 'No targets for:', info.text        self.update_buttons()        return    # signal handler called when the clipboard returns text data    def clipboard_text_received(self, clipboard, text, data):        if not text or text == '':            return        # remove duplicate        history = [info for info in self.clipboard_history                   if not info or info.text<>text]        cbi = ClipboardInfo()        cbi.text = text        history.insert(-1, cbi)        self.clipboard_history = history + (len(self.clipboard_history) \                                 - len(history)) * [None]        self.clipboard.request_targets(self.clipboard_targets_received, cbi)        return    # display the clipboard history text associated with the button    def clicked_cb(self, button):        i = self.buttons.index(button)        if self.clipboard_history[i]:            self.textbuffer.set_text(self.clipboard_history[i].text)        else:            self.textbuffer.set_text('')        return    # get the clipboard text    def fetch_clipboard_info(self):        self.clipboard.request_text(self.clipboard_text_received)        return True    def set_clipboard(self, button):        text = self.textbuffer.get_text(*self.textbuffer.get_bounds())        self.clipboard.set_text(text)        return    def __init__(self):        num_buttons = 10        self.buttons = num_buttons * [None]        self.clipboard_history = num_buttons * [None]        self.window = gtk.Window()        self.window.set_title("Clipboard Example")        self.window.connect("destroy", lambda w: gtk.main_quit())        self.window.set_border_width(0)        vbbox = gtk.VButtonBox()        vbbox.show()        vbbox.set_layout(gtk.BUTTONBOX_START)        hbox = gtk.HBox()        hbox.pack_start(vbbox, False)        hbox.show()        self.button_tips = gtk.Tooltips()        for i in range(num_buttons):            self.buttons[i] = gtk.Button("---")            self.buttons[i].set_use_underline(False)            vbbox.pack_start(self.buttons[i])            self.buttons[i].show()            self.buttons[i].connect("clicked", self.clicked_cb)        vbox = gtk.VBox()        vbox.show()        scrolledwin = gtk.ScrolledWindow()        scrolledwin.show()        self.textview = gtk.TextView()        self.textview.show()        self.textview.set_size_request(200,100)        self.textview.set_wrap_mode(gtk.WRAP_CHAR)        self.textbuffer = self.textview.get_buffer()        scrolledwin.add(self.textview)        vbox.pack_start(scrolledwin)        button = gtk.Button('Copy to Clipboard')        button.show()        button.connect('clicked', self.set_clipboard)        vbox.pack_start(button, False)        hbox.pack_start(vbox)        self.window.add(hbox)        self.window.show()        self.clipboard = gtk.clipboard_get(gtk.gdk.SELECTION_CLIPBOARD)        self.clipboard.request_text(self.clipboard_text_received)        gobject.timeout_add(1500, self.fetch_clipboard_info)        returndef main():  gtk.main()  return 0if __name__ == '__main__':    cbe = ClipboardExample()    main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -