2010-03-10 61 views
0

我已經在python和pygtk中爲gui中的embeded mplayer編寫了一段代碼。 我假設我用-wid選項使用GtkSocket和mplayer的從屬模式。用MPlayer和PyGTK動態調整大小

但是我遇到了一個問題,當我的GTK窗口的大小小於我的流時,流看起來會被裁剪。當我的窗口大小比我的流大時,流出現在嵌入MPlayer的小部件內部。 (一個gtk.Frame,但我也嘗試使用gtk.DrawingArea) 我想知道如何根據窗口大小動態調整流的大小。 我不想使用Glade或任何GUI構建器。 預先感謝您的幫助,請原諒我可憐的英語。

+0

發佈您的代碼將最有幫助。請停止回答答案,答案只是針對你的問題。請閱讀[我們的常見問題](http://stackoverflow.com/faq)。 – 2011-07-13 07:57:01

回答

0

你想連接到你的嵌入式MPlayer的任何部件的'size-allocate'信號。一旦你知道widget的新的大小,說200x300,發送指令

set_property width 300 
set_property height 200 

成爲MPlayer在從模式。

(見http://www.mplayerhq.hu/DOCS/tech/slave.txt,從屬模式命令的列表。)

+0

你好,謝謝你的答案,但如果get_property是好的,set_property不存在,根據你有關mplayer從屬模式的鏈接。 – alex 2010-03-15 09:10:10

+0

嗨, 我發現有人做了一些例子,但我不明白! 這裏是他的代碼:http://www.dinointeractive.com/?p=36 我只是不明白我錯過了什麼! – alex 2010-03-15 09:21:55

+0

set_property大約在頁面的中間位置,位於set_mouse_pos和speed_incr之間。 Ctrl-F是你的朋友。 – ptomato 2010-03-15 10:53:18

1

你需要告訴mplayer的根據窗口大小進行縮放視頻。這可以通過命令行(-zoom)或配置文件(zoom = 1)完成。