pygtk-socket,plug

系统 1653 0


pygtk-socket,plug

 

插座 (socket) :这里指宿主窗口,它可以让其它应用程序,把窗口嵌入到它里面。如,任务栏就是一个插座 (socket)

 

插头 (plug) : 顾名思义,它就是被嵌入的窗口,可以插入到插座 (socket) 上。相对任务栏而言,应用程序的窗口就是插头 (plug)

 

插头 (plug)/ 插座 (socket) 两者可以在同一个应用中,也可以在不同的应用程序中。在同一个应用程序里,这种做法意义不大,而且可以说是自找麻烦。大多数情况下,它们分别位于不同的进程之中,一个插座 (socket) 窗口可以容纳多个插头 (plug) 窗口中,而一个插头 (plug) 窗口只能处于一个插座 (socket) 窗口之中。

 

plug:

plug = gtk.Plug(socket_id)

id = plug.get_id()

 

socket:

socket = gtk.Socket()

socket.add_id(window_id)

plug = gtk.Plug(0L)

socket.add_id(plug)

window_id = socket.get_id()

plug = gtk.Plug(window_id)

 

 

=========

socket:

 

    #!/usr/bin/python

import string

import pygtk
pygtk.require('2.0')
import gtk,sys

window = gtk.Window()
window.show()

socket = gtk.Socket()
socket.show()
window.add(socket)

print "Socket ID=", socket.get_id()
window.connect("destroy", gtk.mainquit)

def plugged_event(widget):
	print "I (",widget,") have just had a plug inserted!"

socket.connect("plug-added", plugged_event)

if len(sys.argv) == 2:
	socket.add_id(long(sys.argv[1]))

gtk.mainloop()
  

 

 

plug:

 

    #!/usr/bin/python

import pygtk
pygtk.require('2.0')
import gtk,sys

Wid = 0L
if len(sys.argv) == 2:
	Wid = long(sys.argv[1])
	
plug = gtk.Plug(Wid)
print "Plug ID=", plug.get_id()
	
def embed_event(widget):
	print "I (",widget,") have just been embedded!"
	
plug.connect("embedded", embed_event)
	
entry = gtk.Entry()
entry.set_text("hello")
	
def entry_point(widget):
	print "You've changed my text to '%s'" % widget.get_text()
entry.connect("changed", entry_point)
plug.connect("destroy", gtk.mainquit)

plug.add(entry)
plug.show_all()


gtk.mainloop()
  

 

 

pygtk-socket,plug


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论