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
- python手记(7)
- Python 手记
- python手记
- python socket 编程手记
- Python重载学习手记
- python手记(1)
- python手记(2)
- python手记(3)
- python手记(4)
- python手记(5)
- python手记(6)
- python手记(8)
- python手记(9)
- python手记(10)
- python手记(11)
- python手记(12)
- python手记(14)
- python手记(15)
- iOS7新特征汇总
- 搞IT也不能不懂“五险一金”啊
- 安卓之--动画效果的实现
- gsoap处理http post和http get
- cocos2d-x js binding tips 1 使用cocosbuilder导入jsb后无法响应触摸的问题
- python手记(7)
- oracle用户创建及权限设置
- 黑马程序员_毕向东_Java基础_DAY01学习笔记
- Android系统设计中存在设计模式分析
- window最大化后,里面的grid不跟着最大化,解决办法
- [Leetcode]Path Sum
- 位置无关码
- sql server 中 计算
- android button加icon