原文章
有時,外掛程式需要使用者選擇特定的檔案或路徑。當然,您可以給使用者乙個簡單的字串輸入,然後讓他們複製/貼上到其中,但是讓他們從檔案瀏覽器中選擇乙個檔案要酷多少呢?
幸運的是,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的例項後,我們可以給該例項繫結任何屬性和方法,這就是動態語言的靈活性。...