私はPythonとPyGTKの単純なビデオプレーヤーで、VLCをプレーヤーバックエンドとして使用しています。 gtk.DrawingAreaにビデオ画像を表示したいので、Linuxではbuilder.get_object( 'drawingarea1')。window.xidを使ってDrawingAreaウィジェットのXIDを取得します。 Windowsでは、ドキュメントによると、builder.get_object( 'drawingarea1').window.handleを使用する必要がありますが、ビデオファイルを再生すると、gtkだけでなく、ウィンドウ全体で再生されます。 DrawingArea。私は何が起きているのかを見つけるために掘り起こし始めました。builder.get_object( 'mainWindow')から取得した番号が見つかりました。window.handleはbuilder.get_object( 'drawingarea1')と同じです。window.handleこれは、ウィジェットのハンドラを取得する正しい方法ですか、または私は何か間違っていますか?Windowsでgtk.gdk.window.handleを取得する
答えて
例がなくても何をしているのか分かりませんが、少し質問をしたところ、この質問と可能な回答が見つかりましたhttp://python.6.n6.nabble.com/gtk-DrawingArea-handle-id-on-win32-bug-td1943074.html。そして一例が添付されました。彼が提供するリンクhttp://library.gnome.org/devel/gtk/2.18/gtk-migrating-ClientSideWindows.htmlはもう存在しませんが、更新されたリンクhttp://developer.gnome.org/gtk/2.24/gtk-migrating-ClientSideWindows.htmlが見つかりました。基本的にあなたが
drawingarea.window.handle
は、描画領域の正しいネイティブハンドルを返す属性作るために
drawingarea.window.ensure_native()
を呼び出す必要がありそうです
Linuxのdrawingarea.window.xid
が自動的に呼び出して属性を取得
drawingarea.window.ensure_native()
しかし
drawingarea.window.handle
あなたのためにこれを行いません。
こちらがお役に立てば幸いです。
ありがとう、これは私のために働いた。また、私は別の問題を抱えています:もし私がプレーヤーのウィンドウを隠して、それを再び表示すると(それは "シストレーに隠れる"機能です)、gtk.Drawingareaを破壊して再作成するまで、ビデオは決して再び表示されません。ここで何が問題になるのでしょうか? – ov1d1u
正直言って、私は知らない。再度drawingarea.window.ensure_native()を呼び出してみましたか?それは私が考えることができるすべてです。ハンドルが隠されているときにハンドルが破棄されることもあるので、確実にensure_native()を呼び出した後にハンドルが同じかどうかを確認して、ハンドルポインターが正しいハンドルポインターであることを確認する必要があります。ちょうど教育された推測。私が言ったことがうまくいくかどうか教えてください。 –
ビデオウィンドウを隠す前後でハンドルIDが変わらないようです。確実にensure_native()を呼び出すことは役に立ちませんでした。私はVLCのフォーラムで尋ねました、そして、彼らはこれがGTKの問題だと言っています。だから私はこれに満足していなければならないと思います。 – ov1d1u
- 1. C++でWindowsでタイムゾーンを取得する
- 2. Windowsでシステムを取得する
- 3. ListViewでアイテムを取得するWindows Phone
- 4. Windowsアプリケーションでコントロール名を取得する
- 5. Windowsでプロセスメモリを取得する
- 6. Go for Windowsでウィンドウジオメトリを取得する
- 7. PHPでWindows時間を取得する
- 8. Windows上でWindowsパスを取得する方法(cygpathと同等)?
- 9. リモートコンピュータからWindowsイベントをプログラムで取得する - Windows XP
- 10. Windowsハンドルからオブジェクトを取得する
- 11. Windowsのメッセージ名を取得する
- 12. Windowsフォームのサイズを取得する
- 13. Windows Search Service:テキストを取得する
- 14. WindowsからE820メモリマップを取得する
- 15. Windows Mobile - Bluetooth MACアドレスを取得する
- 16. BIOSからwindowsプロダクトキーを取得する
- 17. Windowsのデフォルトのアイコンを取得する
- 18. Windowsネットワークログオンセッションを取得するIP
- 19. カスタムWindowsフォームボタンイベントを取得する
- 20. SecurityNegotiationExceptionを取得するWindows 10 C#クライアントアプリケーション
- 21. Windowsフォームのクリーンイメージを取得する
- 22. Windowsサービスcouldnt Windows 7のスクリーンショットを取得
- 23. Windowsハンドル用WNDPROCを取得
- 24. Qt Windowsマウスカーソルアイコンを取得
- 25. PowershellですべてのEoL WindowsコンピュータをADで取得する
- 26. Windows 7で現在のシステムボリュームを取得
- 27. Windowsでキーボード言語を取得
- 28. Windows 10でナイトライトモードのステータスを取得
- 29. ハンドルでWindowsコントロール(ダイアログウィンドウ)のインスタンスを取得
- 30. Regex on Windows、フォルダのフォルダパスを取得する現在のフォルダを取得する
ちょうどいいですが、描画領域をGtkEventBoxに配置してみてください。 –