本日はBlender枠です。
今回は独自のBlenderツールを作成するうえで必要な、ボタンを押すことでドキュメントなどの指定したURLのウェブブラウザを開く機能を実装します。
〇webbrowser
webbrowserはPythonの標準ライブラリに含まれているモジュールです。
Webブラウザを制御するための便利な機能を提供しています。
今回はwebbrouwerをインポートして処理を記述します。
import webbrowser
使い方は簡単で、open("URL")を呼び出すことでウェブブラウザが開きます。
webbrowser.open(url)
これをBlenderに合わせてオペレータを定義すると次のようになります。
class OpenURLOperator(bpy.types.Operator): bl_idname = "wm.open_url" bl_label = "Open URL" def execute(self, context): url = context.scene.url_to_open webbrowser.open(url) return {'FINISHED'}
今回はurlを任意に指定できるようにしています。
〇コード全文
import bpy import webbrowser class OpenURLOperator(bpy.types.Operator): bl_idname = "wm.open_url" bl_label = "Open URL" def execute(self, context): url = context.scene.url_to_open webbrowser.open(url) return {'FINISHED'} class URLPanel(bpy.types.Panel): bl_label = "Open URL Panel" bl_idname = "PT_URLPanel" bl_space_type = 'VIEW_3D' bl_region_type = 'UI' bl_category = 'Tools' def draw(self, context): layout = self.layout layout.operator("wm.open_url") layout.prop(context.scene, "url_to_open") def register(): bpy.utils.register_class(OpenURLOperator) bpy.utils.register_class(URLPanel) bpy.types.Scene.url_to_open = bpy.props.StringProperty(default="https://www.example.com") def unregister(): bpy.utils.unregister_class(OpenURLOperator) bpy.utils.unregister_class(URLPanel) del bpy.types.Scene.url_to_open if __name__ == "__main__": register()
こちらのコードを実行するとBlenderの3DView画面にToolという名前でタブが現れます。
中身は任意のurlを指定するテキストフィールドがあり、任意のウェブサイトのURLを指定し、OpenURLボタンを押すことでウェブサイトが開きます。
本日は以上です。