## User Interface
該模塊可用來創建用戶界面,可根據需要靈活組織。
同樣,使用時先導入:
~~~
from WhiteHorse.WHUI import *
~~~
* * * * *
示例:
~~~
>>> components = [Label('壹匹BIM:'),
DropDownBox('combobox1', {'壹': 1, '匹':2}),
Label('壹匹BIM:'),
InputBox('textbox1', Text="默認值"),
CheckBox('checkbox1', '壹匹BIM'),
CheckListBox("checklist1", {"白馬":1, "saker":"nan"}),
RadioBox("radiobox1", {"白馬":1, "saker":"nan"}),
FolderBox(name='folderbox1'),
FileBox(name='filebox1'),
SelectFaceBox('facebox1'), #只在dynamo中可用
SelectEdgeBox('edgebox1'), #只在dynamo中可用
SelectElementsBox('elebox1'), #只在dynamo中可用
ImageBox('c:\\WH.png'),
Separator(),
Button('確定')]
>>> form = WHForm('壹匹BIM', components)
>>> form.show()
>>> # 假設選擇了"壹", 在InputBox中輸入"白馬",選擇了CheckBox
>>> form.values
>>> # 假設選擇了"壹", 在InputBox中輸入"白馬",選擇了CheckBox
{'combobox1': 1, 'textbox1': 'Wood', 'checkbox1': True}
~~~
* * * * *
每個含有數據的控件需指定一個名字,以便在后面提取數據,當單擊窗體下方確定按鈕時,數據會以字典形式存在,所有,每個窗體上的每個控件,名字需 **唯一**!
需指定名稱的控件有:**`InputBox`、`RadioBox`、`FolderBox`、`FileBox`、`CheckBox`、`CheckListBox`、`DropDownBox`、`SelectFaceBox`、`SelectEdgeBox`、`SelectElementsBox`**
為此,這里提供一個方法`getName(name)`該方法會在你指定的`name`后隨機添加一串字符串,這樣名稱就會是唯一的。
* * * * *
下面詳細列出每個控件及用法:
> **主窗體**:
>~~~
>WHForm(title, components, description=None, logo_path=None, **kwargs)
>~~~
> 參數:
> * **title**: 窗體的標題(String)
> * **components**: 要顯示在窗體上的控件.
> * **description**: 窗體左上角描述文字(Stirng)
> * **logo_path**: 顯示在窗體左下角的圖片絕對路徑(String)
> * **kwargs**: 附加屬性(Dictionary)
* * * * *
> **標簽**:
> ~~~
> Label(label_text, **kwargs) #可用來寫提示
> ~~~
> 參數:
> * **label_text**:顯示在標簽上的文字(String)
> * **kwargs**: 附加屬性(Dictionary)
>
> 示例:
> ~~~
> Label("壹匹BIM") #標簽無需指定名稱
> ~~~
* * * * *
> **分割線**:
> ~~~
> separater() #創建一條分割線
> ~~~
* * * * *
> **按鈕**:
> ~~~
> Button(button_text, **kwargs) #每個窗體需含有一個Button,單擊此按鈕才會產生數據
> ~~~
> 參數:
> * **button_text**: 按鈕上顯示的文字(String)
> * **kwargs**: 附加屬性(Dictionary)
>
> 示例:
> ~~~
> Button("確定") #無需指定名稱
> ~~~
* * * * *
> **圖片框**:
> ~~~
> ImageBox(img_path=None, **kwargs) #可用來顯示圖片
> ~~~
> 參數:
> * **img_path**: 圖片地址(String)
> * **kwargs**: 附加屬性(Dictionary)
>
> 示例:
> ~~~
> ImageBox("C:\\img.png") #需用絕對路徑
> ~~~
* * * * *
> **文本框**:
> ~~~
> InputBox(name, **kwargs) #可用來輸入文本
> ~~~
> 參數:
> * **name**: 文本框名稱(String)
> * **kwargs**: 附加屬性(Dictionary)
>
> 示例:
> ~~~
> InputBox(getName("text")) #使用getName函數得到唯一名稱
> ~~~
* * * * *
> **單選框**:
> ~~~
> RadioBox(name, items, **kwargs) #名稱需唯一
> ~~~
> 參數:
> * **name**:單選框組的名字.
> * **items**:單選框組中每個單選框元素.(Dictionary)
>
> 示例:
> ~~~
> RadioBox(getName("radio"), {"白馬":1, "saker":"nan"}) #使用getName函數得到唯一名稱
> ~~~
* * * * *
> **多選框**:
> ~~~
> CheckBox(name, checkbox_text, **kwargs) #名稱需唯一
> ~~~
> 參數:
> * **name**: 控件名稱(String)
> * **checkbox_text**: 顯示的名稱(String)
> * **kwargs**: 附加屬性(Dictionary)
>
> 示例:
> ~~~
> CheckBox(getName("check"), "壹匹BIM") #使用getName函數得到唯一名稱
> ~~~
* * * * *
> **多選框列表**:
>
> ~~~
> CheckListBox(name, description, items, **kwargs) #名稱需唯一
> ~~~
> 參數:
> * **name**:多選框組的名字.
> * **items**:多選框組中每個多選框元素.(Dictionary)
>
> 示例:
> ~~~
> CheckListBox(getName("checklist"), {"白馬":1, "saker":"nan"}) #使用getName函數得到唯一名稱
> ~~~
* * * * *
> **下拉列表**:
> ~~~
> DropDownBox(name, options, **kwargs) #名稱需唯一
> ~~~
> 參數:
> * **name**: 多選框組的名字.
> * **options**:添加到列表中的數據.(Dictionary)
>
> 示例:
> ~~~
> DropDownBox(getName("drop"), {'壹': 1, '匹':2}) #使用getName函數得到唯一名稱
> ~~~
* * * * *
> **文件夾路徑按鈕**:
> ~~~
> FolderBox(name, **kwargs) #名稱需唯一
> ~~~
> 參數:
> * **name**:按鈕名稱(String)
> * **kwargs**: 附加屬性(Dictionary)
>
> 示例:
> ~~~
> FolderBox(getName("folder")) #使用getName函數得到唯一名稱
> ~~~
* * * * *
> **文件路徑按鈕**:
> ~~~
> FileBox(name, **kwargs) #名稱需唯一
> ~~~
> 參數:
> * **name**:按鈕名稱(String)
> * **kwargs**: 附加屬性(Dictionary)
>
> 示例:
> ~~~
> FileBox(getName("file")) #使用getName函數得到唯一名稱
> ~~~
* * * * *
> **選擇面按鈕**:
> ~~~
> SelectFaceBox(name, **kwargs) #名稱需唯一
> ~~~
> 參數:
> * **name**:按鈕名稱(String)
> * **kwargs**: 附加屬性(Dictionary)
>
> 示例:
> ~~~
> SelectFaceBox(getName("face")) #使用getName函數得到唯一名稱
> ~~~
* * * * *
> **選擇邊按鈕**:
> ~~~
> SelectEdgeBox(name, **kwargs) #名稱需唯一
> ~~~
> 參數:
> * **name**:按鈕名稱(String)
> * **kwargs**: 附加屬性(Dictionary)
>
> 示例:
> ~~~
> SelectEdgeBox(getName("edge")) #使用getName函數得到唯一名稱
> ~~~
* * * * *
> **選擇元素按鈕**:
> ~~~
> SelectElementsBox(name, category=None, **kwargs) #名稱需唯一
> ~~~
> 參數:
> * **name**:按鈕名稱(String)
> * **category**:元素類別,可指定類別過濾元素
> * **kwargs**: 附加屬性(Dictionary)
>
> 示例:
> ~~~
> SelectElementsBox(getName("element")) #使用getName函數得到唯一名稱
> ~~~
- 前言
- 安裝
- WhiteHorse節點
- WH_Games
- Snake
- WH_UI
- 舊版UI
- WH_Form
- 布爾值控件
- 多選框控件
- 文本框控件
- 文件夾路徑控件
- 文件路徑控件
- 下拉列表控件
- 選擇邊控件
- 選擇面控件
- 選擇元素控件
- 新版UI
- WH_WorkFlow
- 梁柱切板
- 墻生軸線
- 軸網系統
- 軸線生墻
- WH_Geometry
- Curve
- 合并共線
- 曲線去重
- 線間生線
- 沿面生線
- 直線?
- Point
- 去重點
- PolyCurve
- 線轉多段線
- WH_Rebar
- Rebar_輸入
- 鋼筋_創建
- 基于線創建
- 鋼筋_設置
- 清晰視圖
- 顯示實體
- 鋼筋容器_創建
- 基于鋼筋創建
- 基于線創建
- 添加鋼筋
- 鋼筋容器_設置
- WH_Revit
- 收集器
- 按類別
- 族
- 改名
- 復制類型
- 基于主體創建
- 洞口
- 板開洞
- 過濾器
- 按參數值
- 按參數值包含
- 按類別
- 按名稱
- 按名稱包含
- WhiteHorse包
- 導入
- 使用Dynamo原有節點
- 選擇元素
- Dynamo元素與Revit元素相互轉換
- 事務
- UI