在Python中使用Blender的檔案瀏覽器

2021-10-05 10:33:10 字數 1854 閱讀 8353

原文章

有時,外掛程式需要使用者選擇特定的檔案或路徑。當然,您可以給使用者乙個簡單的字串輸入,然後讓他們複製/貼上到其中,但是讓他們從檔案瀏覽器中選擇乙個檔案要酷多少呢?

幸運的是,blender提供了乙個方便的課程,幾乎可以為我們做所有事情。

認識importhelper

importhelper是在bpy_extras子模組中找到的混合類。它包括乙個呼叫 filebrowser 的invoke()函式以及blender匯入程式外掛程式中使用的一些幫助器函式。要使用它,我們要做的就是在我們的運算子中對其進行擴充套件。首先匯入importhelper和operator。

from bpy_extras.io_utils import importhelper

from bpy.types import operator

現在我們可以繼續建立操作符:

class

ot_testopenfilebrowser

(operator, importhelper)

: bl_idname =

"test.open_filebrowser"

bl_label =

"open the file browser (yay)"

defexecute

(self, context)

:"""do something with the selected file(s)."""

return

是的,就是這樣。我們的新運算子已經具有呼叫 filebrowser 的invoke()函式,並且當使用者選擇檔案時,它將檔案的路徑儲存在self.filepath中。請注意,這是乙個普通的stringproperty內importhelper我們所繼承的時候,我們的子類吧。

為了過濾顯示給使用者的檔案型別,我們必須在類中新增 filter_glob屬性。這是乙個 stringproperty,其中包含我們要顯示的擴充套件列表。每個副檔名均以萬用字元樣式編寫,並用分號分隔。請注意,可以剪下長度超過255的字串(因為這是內部緩衝區的大小)。

)還請記住,使用者可以在ui中禁用過濾並選擇任何型別的檔案。您可能要拒絕檔案或執行其他操作,具體取決於收到的副檔名。您可以使用舊的splitext()來解決這一問題。

最終**

..略,懶得複製了,因為複製掉格式,源**看原文章吧

在DirectX12中使用blend

我們只需要為透明的object設定乙個新的pipelinestateobject即可。和不透明的object相比,就是額外設定了blend state d3d12 render target blend desc blenddesc blenddesc.blendenable true blendd...

在python中使用websocket

介紹一款很帥的外掛程式autobahnpython,通過它可以在python中很方便的使用websocket進行通訊 基於twisted框架 這個外掛程式真正強大的地方是它提供了乙個 發布 訂閱模式,具體內容有空再寫,先簡單介紹一下如何建立傳統的連線。建立伺服器 必須的模組 from twisted...

在Python中使用 slots

這篇文章主要介紹了在python中使用 slots 方法的詳細教程,slots 方法是python的乙個重要內建類方法,基於python2.x版本,需要的朋友可以參考下 正常情況下,當我們定義了乙個class,建立了乙個class的例項後,我們可以給該例項繫結任何屬性和方法,這就是動態語言的靈活性。...