上一期我們介紹了使用UI Customization 工具快速定制界面功能,可以根據寫好的代碼快速生成相應的界面,方便使用。

 

本期我們介紹如何使用Python 的tkinter 庫定制任意複雜的界面。

 

 
 
主要內容

 

UI Customization 工具越來越強大,完全能滿足定制簡單界面的需求。如果想做類似於圖1的複雜界面,那就需要藉助Python 的UI 庫tkinter 來完成啦。

image001

圖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 進行關聯。

 

image002image

圖2 MyRibbon文件夾

 

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

 

image003

圖3 MyRibbon.xml文件

 

至此,關聯操作第一步完成。MyRibbon 文件夾可在本文文末給出的鏈接中下載。

 

添加環境變量

 

 

打開SimLab,由File - Preferences - System - User Defined Environment Variables 進入定義環境變量界面,如圖4所示。

 

image004

圖4 Preferences 菜單

 

按圖5所示設置環境變量,點OK 確定,然後重啟SimLab 即可看到定義好的界面。

 

環境變量名:

SL_PYTHON_CUSTOM_RIBBONS

環境變量值:

D:\MyRibbon\MyRibbon.xml

 

imageimage005

圖5 定義環境變量界面

 

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

 

image006image

圖6 示例Ribbon

 

 
 

2. tkinter基礎

 

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

 

image007

圖7 tkinter簡單界面

 

圖7中“Meshsize”是一個Label,即標籤,用於顯示文字;

 

中間的白色方框是一個Entry,用於輸入文字和數字等信息;

 

右側的“oneclickmesh”是一個Button,即按鈕,點擊該按鈕,後台會自動執行關聯的命令。

 

如果想生成一個最簡單的彈窗,由下面三行代碼即可完成。打開SimLab,由View-Python Window 打開Python 窗口,然後把下面的代碼複製到Python 窗口,回車即可得到圖8所示最簡單的空白彈窗。

 

import tkinter as tk

top = tk.Tk()

top.mainloop()

 

image008

圖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”的圖標

 

image009

圖9 創建下拉菜單和工具

 

附件中的tkinter 文件夾中有完整的代碼,修改xml 文件並設置環境變量即可創建一個功能完整的下拉菜單。

 

本文所有操作可參考以下這個視頻,

建議大家跟著視頻一起實際操作一遍,

學習效果更好哦↓↓↓

 

 

 

 
 

4. 模型下載

 

本文模型下載鏈接:

Altair NAS網盤

文件下載

建議使用電腦端打開鏈接

 

arrow
arrow

    Altair Taiwan 發表在 痞客邦 留言(0) 人氣()