python手记(7)

来源:互联网 发布:无网络免费单机斗地主 编辑:程序博客网 时间:2024/05/21 07:59


pygtk的clipboard

clipboard = gtk.Clipboard(display, selection)
如果使用的是default gtk.gdk.Display,则
clipboard = gtk.clipboard_get(selection)
也可以使用这个方法:

clipboard = widget.get_clipboard(selection)

 

editable.cut_clipboard()
editable.copy_clipboard()
editable.paste_clipboard()

比如:

textbuffer.copy_clipboard(clipboard)

textbuffer.cut_clipboard(clipboard, default_editable)

textbuffer.paste_clipboard(clipboard, override_location, default_editable)

 

textbuffer.add_selection_clipboard(clipboard)
textbuffer.remove_selection_clipboard(clipboard)

 

clipboard.set_with_data(targets, get_func, clear_func, user_data)
clipboard.set_text(text, len=-1)

 

def get_func(clipboard, selectiondata, info, data):
def clear_func(clipboard, data):

 

def my_set_text(self, text, len=-1):
targets = [ ("STRING", 0, 0),
("TEXT", 0, 1),
("COMPOUND_TEXT", 0, 2),
("UTF8_STRING", 0, 3) ]
def text_get_func(clipboard, selectiondata, info, data):
selectiondata.set_text(data)
return
def text_clear_func(clipboard, data):
del data
return
self.set_with_data(targets, text_get_func, text_clear_func, text)
return

 

 

 

clipboard.request_contents(target, callback, user_data=None)

def callback(clipboard, selectiondata, data):

clipboard.request_text(callback, user_data=None)

clipboard.request_targets(callback, user_data=None)

selectiondata = clipboard.wait_for_contents(target)
text = clipboard.wait_for_text()

pygtk的image

image.set_from_pixbuf(pixbuf)
image.set_from_pixmap(pixmap, mask)
image.set_from_image(image)
image.set_from_file(filename)
image.set_from_stock(stock_id, size)
image.set_from_icon_set(icon_set, size)
image.set_from_animation(animation)

 

size参数如下:

ICON_SIZE_MENU
ICON_SIZE_SMALL_TOOLBA
ICON_SIZE_LARGE_TOOLBA
ICON_SIZE_BUTTON
ICON_SIZE_DND
ICON_SIZE_DIALOG

button = gtk.Button(label=None, stock=None)

 

 

stock项主要有以下:

STOCK_DIALOG_INFO

STOCK_DIALOG_WARNING

STOCK_DIALOG_ERROR

STOCK_DIALOG_QUESTION

STOCK_DND

STOCK_DND_MULTIPLE

STOCK_ADD

STOCK_APPLY

STOCK_BOLD

STOCK_CANCEL

STOCK_CDROM

STOCK_CLEAR

STOCK_CLOSE

STOCK_CONVERT

STOCK_COPY

STOCK_CUT

STOCK_DELETE

STOCK_EXECUTE

STOCK_FIND

STOCK_FIND_AND_REPLACE

STOCK_FLOPPY

STOCK_GOTO_BOTTOM

STOCK_GOTO_FIRST

STOCK_GOTO_LAST

STOCK_GOTO_TOP

STOCK_GO_BACK

STOCK_GO_DOWN

STOCK_GO_FORWARD

STOCK_GO_UP

STOCK_HELP

STOCK_HOME

STOCK_INDEX

STOCK_ITALIC

STOCK_JUMP_TO

STOCK_JUSTIFY_CENTER

STOCK_JUSTIFY_FILL

STOCK_JUSTIFY_LEFT

STOCK_JUSTIFY_RIGHT

STOCK_MISSING_IMAGE

STOCK_NEW

STOCK_NO

STOCK_OK

STOCK_OPEN

STOCK_PASTE

STOCK_PREFERENCES

STOCK_PRINT

STOCK_PRINT_PREVIEW

STOCK_PROPERTIES

STOCK_QUIT

STOCK_REDO

STOCK_REFRESH

STOCK_REMOVE

STOCK_REVERT_TO_SAVED

STOCK_SAVE

STOCK_SAVE_AS

STOCK_SELECT_COLOR

STOCK_SELECT_FONT

STOCK_SORT_ASCENDING

STOCK_SORT_DESCENDING

STOCK_SPELL_CHECK

STOCK_STOP

STOCK_STRIKETHROUGH

STOCK_UNDELETE

STOCK_UNDERLINE

STOCK_UNDO

STOCK_YES

STOCK_ZOOM_100

STOCK_ZOOM_FIT

STOCK_ZOOM_IN

STOCK_ZOOM_OUT

#!/usr/bin/env pythonimport pygtkpygtk.require('2.0')import gtk#!/usr/bin/env python# -*- coding: utf-8 -*-import pygtkpygtk.require('2.0')import gtkclass DeepFuture:    def blogurlshow(self,widget,data=None):        print("我的博客:deepfuture.javaeye.com")    def delwin_event(self,widget,event,data=None):        #如果你在"delete_event"事件处理中,返回FALSE,GTK会继续发射这个信号,以供destroy,否则返回TRUE,表示这个信号已经被处理,不需要再处理了,也不需要再发射这个信号了,这意味着你不能destroy窗口。        print("delete event!")        return False    def destroy_win(self,widget,data=None):        #处理窗口销毁信号        print("destroy event!")                gtk.main_quit()    def __init__(self):        #创建一个新窗口        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)        #指定信号与相关处理事件        self.window.connect("delete_event", self.delwin_event)        self.window.connect("destroy", self.destroy_win)        self.window.set_border_width(15)        self.button = gtk.Button("显示我的博客",gtk.STOCK_SAVE_AS)        self.button.connect("clicked", self.blogurlshow, None)        self.button.connect_object("clicked", gtk.Widget.destroy,self.window)        self.window.add(self.button)        #显示按钮和相关窗口        self.button.show()        self.window.show()    def main(self):        gtk.main()if __name__ == "__main__":deep=DeepFuture()deep.main()


带图片的按钮,采用在button内加上box的方式

#!/usr/bin/env pythonimport pygtkpygtk.require('2.0')import gtk # Create a new hbox with an image and a label packed into it # and return the box.def xpm_label_box(parent, xpm_filename, label_text): # Create box for xpm and label    box1 = gtk.HBox(False, 0)    box1.set_border_width(2)     # Now on to the image stuff    image = gtk.Image()    image.set_from_file(xpm_filename)    # Create a label for the button    label = gtk.Label(label_text)    # Pack the pixmap and label into the box    box1.pack_start(image, False, False, 3)    box1.pack_start(label, False, False, 3)    image.show()    label.show()    return box1class Buttons:    # Our usual callback method    def callback(self, widget, data=None):        print "Hello again - %s was pressed" % data    def __init__(self):    # Create a new window        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)        self.window.set_title("Image’d Buttons!")    # It’s a good idea to do this for all windows.        self.window.connect("destroy", lambda wid: gtk.main_quit())        self.window.connect("delete_event", lambda a1,a2:gtk.main_quit())    # Sets the border width of the window.        self.window.set_border_width(10)    # Create a new button        button = gtk.Button()    # Connect the "clicked" signal of the button to our callback        button.connect("clicked", self.callback, "cool button")    # This calls our box creating function        box1 = xpm_label_box(self.window, "./logo.xpm", "logo button")    # Pack and show all our widgets        button.add(box1)        box1.show()        button.show()        self.window.add(button)        self.window.show()def main():    gtk.main()    return 0if __name__ == "__main__":    Buttons()    main()

事件:

 

enter -进入button产生

leave - 离开button产生

pressed - 按下产生

released - 释放产生

clicked - 单击产生


事件:

 

enter -进入button产生

leave - 离开button产生

pressed - 按下产生

released - 释放产生

clicked - 单击产生

本博客所有内容是原创,未经书面许可,严禁任何形式的转

http://blog.csdn.net/u010255642