2010-01-07 15 views
8

के अंदर बाहरी एप्लिकेशन को एम्बेड करने का तरीका मैं एक pygtk जीयूआई desiging और इसमें एक बाहरी अनुप्रयोग एम्बेड करना चाहते हैं।pygtk मेरे pygtk GUI

क्या किसी को पता है कि यह कैसे किया जा सकता है?

+0

बिल्कुल सुनिश्चित नहीं है कि आप 'एम्बेड' से क्या मतलब रखते हैं? क्या आप अपनी स्थिति के बारे में अधिक विशिष्ट हो सकते हैं? – zdav

+0

"एम्बेड" से आपका क्या मतलब है। अधिक विशिष्ट बनें और उदाहरण दें। –

+1

मैंने Gambas2 में पहले यह किया है। यह http://upload.snelhest.org/images/0812134.png जैसा दिखना चाहिए आप स्क्रीनशॉट में देख सकते हैं कि gparted मेरे एप्लिकेशन में कैसे एम्बेड करता है। 'एम्बेड' द्वारा मेरा मतलब है कि एक बाहरी एप्लिकेशन लॉन्च करें ... लेकिन खिड़की प्रबंधक इसे सजाने और डेस्कटॉप पर रखने के बजाय, इसे मेरे आवेदन में जाना होगा। इसके बारे में सोचें जैसे एक अभिभावक करना लेकिन खिड़की पर एक विजेट नहीं –

उत्तर

4

यह क्या आवेदन तुम अपने में एम्बेड करने के लिए कोशिश कर रहे हैं पर निर्भर करता है, लेकिन अगर अन्य अनुप्रयोग एक जीटीके एप्लिकेशन (या एक XEMBED प्रोटोकॉल का समर्थन करता है) है, तो आप gtk.Plug और gtk.Socket के साथ ऐसा करने में सक्षम होना चाहिए।

http://www.pygtk.org/pygtk2tutorial/sec-PlugsAndSockets.html

+0

मैंने इसे देखा, लेकिन मुझे नहीं पता कि इससे मुझे बाहरी एप्लिकेशन को एम्बेड करने में मदद मिलेगी। xwinfo द्वारा रिपोर्ट की गई विंडो आईडी 0x12343 की तरह कुछ है लेकिन प्लग एक लंबे प्रारूप में एक विंडो आईडी चाहता है ... मुझे नहीं पता कि इन 2 टुकड़ों को एक साथ कैसे फिट किया जाए –

+0

@ एम 0 ई-एलएनएक्स: हेक्स और लम्बाई के बीच कनवर्ट करें: 'लंबा ("0x12343", 16) '... – Sardathrion

3

यह एक मदद कर सकता है: PyGTK ट्यूटोरियल एक वर्ग ऐसा करने के तरीके को समझा है। लेख 1 9 .15 पढ़ें। मैं प्लग और सॉकेट का उपयोग करके कुछ कैसे एम्बेड करूं? (http://faq.pygtk.org/index.py?req=all#19.15) और पता लगाएं कि मनमानी एक्स विंडो एप्लिकेशन को (पीई) जीटीके सॉकेट में कैसे एम्बेड करें।

1

आप gtk.Plug/gtk.Socket आईडी प्राप्त करने के लिए बाहरी प्रोग्राम का उपयोग नहीं करते हैं, उनके पास उनके संबंधित कार्य हैं। उदाहरण के लिए इस ट्यूटोरियल को देखें: link

0

आप (है कि एक जीटीके खिड़की नहीं हो सकता है) के लिए एक बाहरी खिड़की reparent की कोशिश कर रहे हैं, तो आप

w = gdk.window_foreign_new(window_id) 

का उपयोग एक ऑपरेटिंग सिस्टम विंडो हैंडल से एक को जरूर खिड़की वस्तु प्राप्त करने के लिए कर सकते हैं, और उसके बाद का उपयोग

w.reparent(parent_window, x, y) 

इसे मौजूदा gtk कंटेनर में अभिभावित करने के लिए।

संबंधित मुद्दे