UI Customization 工具越來越強大,完全能滿足定制簡單界面的需求。如果想做類似於圖1的複雜界面,那就需要藉助Python 的UI 庫tkinter 來完成啦。
圖1 複雜界面
本期內容主要分為以下三個部分:
- tkinter 界面與SimLab 的關聯;
- tkinter 基本功能介紹;
- 在SimLab 中創建下拉菜單
注意:本文所有代碼都基於SimLab2020.1 經典界面。
1. tkinter 界面與SimLab 關聯
整個關聯操作需要兩步:
1)修改xml 文件中py 文件路徑;
2)在SimLab 中添加環境變量。
修改xml文件中py文件路徑
將MyRibbon文件夾解壓並保存到桌面,文件夾內有如圖2所示的images文件夾、MyRibbon.py代碼文件以及MyRibbon.xml文件。(文件下載見文末鏈接~)
images 文件夾內包含兩張圖片用於做工具圖標,MyRibbon.py 文件中包含功能代碼以及定制界面的代碼,MyRibbon.xml 文件用於將MyRibbon.py 文件與SimLab 進行關聯。


圖2 MyRibbon文件夾
圖3所示的MyRibbon.xml 文件只有四行文字,整個關聯操作只需要修改MyRibbon.xml 文件中第三行的MyRibbon.py 的路徑即可。若MyRibbon 文件夾保存在D 盤根目錄,只需要將路徑修改為下圖所示的“D:/MyRibbon/MyRibbon.py” 即可。

圖3 MyRibbon.xml文件
至此,關聯操作第一步完成。MyRibbon 文件夾可在本文文末給出的鏈接中下載。
添加環境變量
打開SimLab,由File - Preferences - System - User Defined Environment Variables 進入定義環境變量界面,如圖4所示。

圖4 Preferences 菜單
按圖5所示設置環境變量,點OK 確定,然後重啟SimLab 即可看到定義好的界面。
環境變量名:
SL_PYTHON_CUSTOM_RIBBONS
環境變量值:
D:\MyRibbon\MyRibbon.xml


圖5 定義環境變量界面
重啟SimLab,可看到定義好的My Ribbon 界面如圖6所示。


圖6 示例Ribbon
2. tkinter基礎
tkinter 提供非常豐富的界面定制功能,本文作為入門教程,只介紹如下圖所示的Label、Entry 和Button 三個工具。

圖7 tkinter簡單界面
圖7中“Meshsize”是一個Label,即標籤,用於顯示文字;
中間的白色方框是一個Entry,用於輸入文字和數字等信息;
右側的“oneclickmesh”是一個Button,即按鈕,點擊該按鈕,後台會自動執行關聯的命令。
如果想生成一個最簡單的彈窗,由下面三行代碼即可完成。打開SimLab,由View-Python Window 打開Python 窗口,然後把下面的代碼複製到Python 窗口,回車即可得到圖8所示最簡單的空白彈窗。
import tkinter as tk
top = tk.Tk()
top.mainloop()

圖8 空白彈窗
運行下面的代碼可彈出圖7所示帶Label、Entry 和Button 的窗口,每行代碼中#號後面的內容都是註釋,只需要一點點Python 基礎就能看懂。
import tkinter as tk#導入tkinter庫
top = tk.Tk()#定義一個彈窗
top.title('test')#將彈窗命名為“test”
top.geometry("450x100")#定論彈窗大小為長450像素,寬100像素
lv1 = tk.Label(top, text='Meshsize')#定義Label,顯示的文字為Meshsize
lv1.place(x=10,y=20)#定義Label位置,X坐標為10,Y坐標為20
lv3 = tk.Entry(top)##定義Entry
lv3.place(x=110, y=20)#定義Entry位置,X坐標為110,Y坐標為20
lv2 = tk.Button(top, text='oneclickmesh')#定義按鍵,名為“oneclickmesh”,關聯到mesh函數
lv2.place(x=320,y=20)#定義按鈕位置,X坐標為320,Y坐標為20
top.mainloop()#顯示彈窗
如果希望全面學習tkinter相關知識,這裡提供下面兩個學習網站:
tkinter 官網:
http://effbot.org/tkinterbook
菜鳥教程:
https://www.runoob.com/python/python-gui-tkinter.html
3. 創建SimLab 下拉菜單
如果只創建一個下拉菜單,然後在下拉菜單中創建一個功能圖標,非常簡單,只需要幾行代碼即可完成。
將tkinter文件夾保存到D盤根目錄,然後將下面的代碼複製到SimLab的Python窗口即可創建一個下拉菜單,並創建一個功能圖標見圖9,只是這個圖標後台不帶任何功能。(文件下載見文末鏈接~)
from hwx import gui #導入gui庫
import os #導入OS庫
os.chdir(r'D:\tkinter') #修改當前路徑,用於尋找工具圖標
page = gui.RibbonPage(text="Demo",name = 'text', after='Scripting') #在Scripting下拉菜單後定義一個名為Demo的下拉菜單
group0 = gui.SpriteActionGroup (page, text="OneClickMesh") #定義一個名為“OneClickMesh”的工具
gui.SpriteAction (group0,tooltip="OneClickMesh",icon= ('icon.png')) ##將圖片“icon.png”設置為工具“OneClickMesh”的圖標

圖9 創建下拉菜單和工具
附件中的tkinter 文件夾中有完整的代碼,修改xml 文件並設置環境變量即可創建一個功能完整的下拉菜單。
本文所有操作可參考以下這個視頻,
建議大家跟著視頻一起實際操作一遍,
學習效果更好哦↓↓↓
4. 模型下載
本文模型下載鏈接:
建議使用電腦端打開鏈接