王曉輝 聶小華 常 亮
(中國飛機(jī)強(qiáng)度研究所 陜西 西安 710065)
隨著信息技術(shù)的發(fā)展,以有限元法[1]為主體的分析技術(shù)已成為產(chǎn)品結(jié)構(gòu)設(shè)計(jì)過程中進(jìn)行強(qiáng)度分析與性能評(píng)定的標(biāo)準(zhǔn)流程之一。按照工業(yè)軟件的適用范圍和功能需求來說,有限元軟件包含兩大類:通用軟件和專用軟件。其中通用有限元軟件大多屬于商業(yè)軟件,不僅價(jià)格昂貴和技術(shù)封鎖,且在實(shí)際應(yīng)用中需要通過二次開發(fā)和不定期投資維護(hù),因而開發(fā)自主產(chǎn)權(quán)的專用有限元軟件成為當(dāng)下適合工程應(yīng)用和規(guī)避科研風(fēng)險(xiǎn)的必然選擇。在功能劃分和組成方面,有限元軟件包含三部分:前處理、求解器和后處理。在整個(gè)分析過程中,前后處理占據(jù)了80%的時(shí)間,包括有限元模型的構(gòu)建、物理屬性的定義及模型的可視化分析,整個(gè)過程緊密融合了用戶的需求。通過調(diào)研發(fā)現(xiàn),目前國內(nèi)外對(duì)于專用有限元軟件的開發(fā),大多數(shù)集中于求解算法效率的提升和計(jì)算理論的推導(dǎo)等方面,而忽視了軟件用戶界面的友好交互性。設(shè)計(jì)一個(gè)友好交互的面向工程需求的圖形用戶界面GUI,將給有限元分析的前后處理工作帶來極大的方便,大大改善軟件的整體性能。GUI模塊作為開發(fā)其他專用軟件的起點(diǎn),在軟件設(shè)計(jì)開發(fā)過程中扮演重要角色[2]。
傳統(tǒng)的有限元軟件開發(fā)往往更關(guān)注軟件功能的實(shí)現(xiàn)而忽略了軟件的用戶體驗(yàn)。但隨著計(jì)算機(jī)軟硬件技術(shù)的飛速發(fā)展,用戶對(duì)于有限元軟件的可操作性、擴(kuò)展性、跨平臺(tái)性、美觀性等方面提出了更高的要求。從而軟件用戶界面的設(shè)計(jì)也越來越受到開發(fā)人員的重視,但具體實(shí)現(xiàn)中難度也很大。比如ANSYS等商業(yè)軟件,每幾年都會(huì)通過用戶體驗(yàn)反饋,進(jìn)行版本提升,但提供的用戶界面至今仍未令人很滿意[3],尤其是在用戶友好性方面存在一定的局限性。再如主流的PATRAN、ABAQUS CAE等軟件,雖然擁有眾多的用戶群體,但由于特有的用戶界面設(shè)計(jì),固化了用戶的使用習(xí)慣,使得國內(nèi)工程應(yīng)用依賴于國外軟件,一定程度上阻礙了國產(chǎn)自主CAE軟件的發(fā)展和推廣。在國內(nèi),早期的國內(nèi)學(xué)者對(duì)軟件用戶界面的設(shè)計(jì)更多聚焦于界面設(shè)計(jì)原則和方法理論的闡述[4],對(duì)于程序?qū)崿F(xiàn)層面的描述不是很多。對(duì)于有限元軟件的用戶界面的開發(fā)形式大致包括:基于商業(yè)軟件二次開發(fā)[5]、開源程序的封裝集成和[6-7]和針對(duì)特定應(yīng)用場景的用戶界面程序設(shè)計(jì)與開發(fā)[8-10]。其中二次開發(fā)和開源程序封裝入門難度較大,開發(fā)成本較高;特定功能的軟件用戶界面設(shè)計(jì)開發(fā)需求明確,更能滿足用戶和計(jì)算系統(tǒng)多方面的要求。因此,通過自主開發(fā)構(gòu)建跨平臺(tái)的友好的專用有限元軟件的圖形用戶界面成為了國產(chǎn)有限元軟件開發(fā)的最佳選擇。
經(jīng)過調(diào)研發(fā)現(xiàn),目前主流的GUI設(shè)計(jì)工具有MFC、Qt、wxWidget以及Gnome。其中MFC和Gnome不能跨平臺(tái),不可移植。真正跨平臺(tái)的只有Qt和wxWidget,但是wxWidget目前缺乏專業(yè)維護(hù)和技術(shù)支持,無法滿足客戶需求。Qt作為一個(gè)非常優(yōu)秀的面向?qū)ο蟮目缙脚_(tái)圖形開發(fā)框架,有很強(qiáng)的擴(kuò)展性,支持組件編程[12]。為此,本文結(jié)合航空結(jié)構(gòu)強(qiáng)度分析流程,以用戶需求為中心[13-14],采用多窗口界面(MDI)設(shè)計(jì)方式,基于Qt技術(shù)在Windows操作系統(tǒng)下進(jìn)行專用有限元軟件用戶界面的設(shè)計(jì)與開發(fā),最后結(jié)合HAJIF基礎(chǔ)求解平臺(tái)驗(yàn)證應(yīng)用。
HAJIF全名為航空結(jié)構(gòu)強(qiáng)度分析與優(yōu)化設(shè)計(jì)軟件系統(tǒng),它是由中國飛機(jī)強(qiáng)度研究所歷經(jīng)了多年艱辛探索與突破,研制推出的一款國內(nèi)航空領(lǐng)域功能最完善的自主CAE軟件系統(tǒng),涵蓋了飛行器結(jié)構(gòu)分析、優(yōu)化設(shè)計(jì)、氣動(dòng)彈性和強(qiáng)度校核等多種功能。尤其在最近幾年,HAJIF計(jì)算系統(tǒng)在求解規(guī)模效率方面有了很大提升,已廣泛應(yīng)用于航空、航天、交通和武器裝備等領(lǐng)域[15-19]。
鑒于有限元軟件主要解決和分析大而復(fù)雜的科學(xué)和工程問題,具有復(fù)雜和異構(gòu)的數(shù)據(jù)類型,從而要求其對(duì)用戶界面的設(shè)計(jì)必須遵循簡便性、直接性、可控性、美觀性、反饋性、標(biāo)準(zhǔn)化和一致性的原則,同時(shí)可面向多層次用戶需求。
為了更好地完成用戶界面的設(shè)計(jì),通過調(diào)研當(dāng)下商業(yè)有限元軟件界面的元素構(gòu)成,結(jié)合有限元分析流程,有限元軟件系統(tǒng)的GUI除了考慮文件的管理、前處理、與求解器的數(shù)據(jù)關(guān)聯(lián)、后處理結(jié)果顯示等功能外,還需要添加常用工具、動(dòng)態(tài)語言切換和幫助文檔等新的功能。同時(shí),針對(duì)有限元軟件中多個(gè)功能模塊之間“高內(nèi)聚,低耦合”的特性,為了有效降低軟件編制的復(fù)雜度,提高軟件模塊的維護(hù)性和可移植性,在此采用多窗口界面(MDI) 設(shè)計(jì)方式,實(shí)現(xiàn)單一主窗口和多個(gè)子窗口的數(shù)據(jù)管理[20-21]。其中,有限元軟件主界面的總體框架如圖1所示。
圖1 有限元軟件主界面總體框架圖
結(jié)合有限元分析流程,有限元軟件的基本操作步驟如圖2所示。在有限元軟件操作過程中,用戶可實(shí)時(shí)通過幫助菜單獲取幫助信息,通過語言設(shè)置菜單實(shí)現(xiàn)界面語言動(dòng)態(tài)切換,通過快捷工具欄實(shí)現(xiàn)特殊操作功能等。
圖2 有限元軟件主要操作步驟
根據(jù)以上設(shè)計(jì)思路,可以得到有限元軟件主界面中的區(qū)域分配和界面元素布局,如圖3所示包含主窗口和基本的界面元素,如菜單欄、工具欄、狀態(tài)欄、數(shù)據(jù)視窗和模型樹等。
圖3 有限元軟件主界面區(qū)域分配和元素布局
本文在設(shè)計(jì)過程中主要采用Qt和C++作為開發(fā)環(huán)境。由于軟件用戶界面存在大量人機(jī)交互操作,因此對(duì)于數(shù)據(jù)通信效率有很高的要求。其中Qt的信號(hào)槽機(jī)制是類型安全且松散耦合的,已逐漸替代了傳統(tǒng)的回調(diào)函數(shù),使得數(shù)據(jù)信號(hào)的傳遞更安全高效。此外,Qt 中集合了強(qiáng)大的類庫,具有豐富的API,可支持對(duì)圖形、文本、數(shù)據(jù)庫、網(wǎng)絡(luò)、I/O及視圖控件等的操作。因此在有限元軟件用戶界面設(shè)計(jì)中,Qt開發(fā)框架能夠很好地滿足軟件多接口、多響應(yīng)、多元素、個(gè)性化設(shè)計(jì)和后期跨平臺(tái)應(yīng)用的需求。
Qt包含了各種功能不同的模塊,每個(gè)模塊都有隸屬于自己的類庫。其中常用的模塊有QtCore(核心模塊)、QtGui(GUI模塊)、QtNetwork(網(wǎng)絡(luò)模塊)、QtOpenGL(OpenGL 3D模塊)、QtScript(腳本模塊)、QtXml(文本模塊)和QtSql(Sql數(shù)據(jù)庫模塊)。在程序?qū)嶋H設(shè)計(jì)中,主要用到的類包括QObject(Qt 對(duì)象模型的基類)、QApplication(界面程序控制和設(shè)置類)、QWidget和QDialog(組件容器類)、QMainWindow(中央窗口部件類)、QEvent(Qt事件響應(yīng)類的基類)和QLayout(布局管理類)等[22]。Qt類庫組織結(jié)構(gòu)合理,使用時(shí)需要按照各類的集成關(guān)系進(jìn)行操作,本文所用到的Qt類屬結(jié)構(gòu)如圖4所示。
圖4 Qt類結(jié)構(gòu)示意圖
軟件主界面各個(gè)窗口都繼承自 QMainWindow類,主要功能是用于程序的運(yùn)行顯示,其上的組件分別包含 CentralWidget、 QToolBar、 QMenuBar等子類,分別對(duì)應(yīng)界面布局、菜單欄和工具欄等的顯示。基于以上子類又可以派生出如 QMenu(菜單),QAction(動(dòng)作)、QGroupBox(組合框)和 QLabel(文本和圖的顯示)等子類,以實(shí)現(xiàn)子窗口中的特殊功能。
在軟件使用過程中,用戶界面最重要的功能就是處理人與軟件之間的信息傳遞及交互。其中,信號(hào)與槽作為Qt框架編程的基礎(chǔ),屬于一種觀察者模式,用來實(shí)現(xiàn)對(duì)象間的數(shù)據(jù)響應(yīng)和通信,操作簡便靈活,從而可以大幅提高軟件的人機(jī)交互效率。程序調(diào)用形式如下:
connect(sender,signal,receiver,slot)
其中:sender是發(fā)送信號(hào)的對(duì)象;signal是發(fā)送對(duì)象發(fā)出的信號(hào);receiver是接收信號(hào)的對(duì)象;slot是接受對(duì)象在接收到信號(hào)之后需要執(zhí)行的功能函數(shù)。
在有限元軟件系統(tǒng)界面中,除了常規(guī)的界面交互功能,還需要提供圖形可視化等功能。OpenGL作為繪制三維圖形的標(biāo)準(zhǔn)API,在圖形可視化方面應(yīng)用廣泛。其中,QtOpenGL模塊依賴于OpenGL庫,經(jīng)常被Qt應(yīng)用程序用來繪制3D圖形[23]。在具體實(shí)現(xiàn)中,需要對(duì)QtOpenGL的QGLWidget類進(jìn)行子類化,并且需要在QGLWidget中實(shí)現(xiàn)場景繪制虛函數(shù),如void initiallizeGL(),void resizeGL()和void paintGL()等,也可以直接調(diào)用OpenGL命令開發(fā)窗口部件。
軟件界面語言的多樣化已成為評(píng)估軟件可用性的重要指標(biāo)。其中Qt全面使用Unicode,對(duì)國際化支持十分成熟。如圖5所示,Qt linguist(又稱Qt語言家)是Qt的一個(gè)附加組件,很好地解決了Qt的國際化問題,方便了程序界面語言的翻譯,具體實(shí)現(xiàn)在4.4小節(jié)有所描述。
圖5 Qt linguist
如圖6所示,本文介紹的有限元軟件界面實(shí)現(xiàn)流程圖表明,基于Qt的有限元軟件界面的應(yīng)用程序框架是自上向下的。以下重點(diǎn)描述幾個(gè)重要流程的具體實(shí)現(xiàn)過程。
圖6 有限元軟件界面實(shí)現(xiàn)流程圖
首先在主函數(shù)(main函數(shù))中生成QApplication類的一個(gè)實(shí)例hjif_app,然后依照功能要求編輯主窗口類MainWindow的實(shí)例hjf_mainWin。軟件用戶界面的主入口程序如下:
int main(int argc, char*argv[])
{
QApplication hjf_app(argc, argv);
//產(chǎn)生一個(gè)QApplication類的實(shí)例hjf_app,
//可以為開發(fā)機(jī)構(gòu)和程序命名
hjf_app.setOrganizationName("機(jī)構(gòu)名稱");
hjf_app.setApplicationName("軟件名稱");
//定義Mainwindow類的對(duì)象hjf_mainWin,
//Mainwindow類以公有形式繼承QMainwindow類
MainWindow hjf_mainWin;
hjf_mainWin.setMinimumWidth(960);
//設(shè)置主窗口最小寬度
hjf_mainWin.setMinimumHeight(600);
//設(shè)置主窗口最小高度
hjf_mainWin.showMaximized();
//主窗口最大化
int ret=hjf_app.exec();
//顯示主窗口
return ret;
}
如圖7所示,有限元軟件的用戶界面主要包括6部分:(1) 菜單和工具欄,包括模型/結(jié)果導(dǎo)入、導(dǎo)出等;(2) 視圖控制欄,具有6個(gè)視圖操作和常規(guī)鼠標(biāo)操作;(3) 模型樹/結(jié)果樹,包含了有限元模型的幾何、網(wǎng)格、材料、屬性等信息的層次目錄;(4) 視圖區(qū),作為軟件界面中區(qū)域最大的部分,為用戶提供可視化窗口;(5) 功能窗口,主要作為各個(gè)功能模塊的數(shù)據(jù)輸入界面以及配置參數(shù)選項(xiàng)界面等;(6) 應(yīng)用窗口部件類,可單獨(dú)使用,也可以作為功能窗口的子部件被使用。
圖7 有限元軟件界面組成部分
其中主要功能窗口部件包含對(duì)話框(QDialog)、基礎(chǔ)窗口部件(QWidget)和其他特殊窗口部件。主界面的程序?qū)崿F(xiàn)如下:
MainWindow::MainWindow(QWidget*parent):
{
//窗體、對(duì)話框初始化
m_importThread=NULL;
//模型導(dǎo)入進(jìn)程類
m_entityDlg=NULL;
//元素創(chuàng)建窗體
……
languageUpdate();
//更新語言
createMenus();
//創(chuàng)建菜單
createToolBars();
//創(chuàng)建工具欄
createStatusBar();
//創(chuàng)建狀態(tài)欄
createGuidTree();
//創(chuàng)建向?qū)洌耗P蜆浜徒Y(jié)果樹
iniMainLayout();
//初始化界面布局
showMaximized();
//主窗口最大化
//設(shè)置主窗口名稱和圖標(biāo)
setWindowTitle(tr("%1%2").arg(TITLE).arg(VER));
setWindowIcon(QIcon(":/public/image/hajifui.png"));
setupSolPath();
//設(shè)置求解器路徑
setupEnvironment();
//設(shè)置環(huán)境變量
}
圖7中的5-功能窗口的程序?qū)崿F(xiàn)主要代碼如下:
class LoadDlg:public QDialog
{
public:
QLineEdit*m_txtLoadFilePath;
//文本輸入框
QRadioButton *m_rdbDisForce;
//單選按鈕
QLabel *m_lblOutFormat;
//文本標(biāo)簽
QComboBox *m_cmbOutLoadFormat;
//復(fù)選按鈕
ApplyEntityWgt *m_applyTargetEntity;
//實(shí)體組合部件
};
可以看出,LoadDlg是自定義設(shè)計(jì)的類,繼承自QDialog,其包含的控件有文本標(biāo)簽、文本輸入框、單選/復(fù)選按鈕和應(yīng)用組合部件。另外,應(yīng)用組合部件類ApplyEntityWgt也是自定義設(shè)計(jì)的類,繼承自QWidget,對(duì)應(yīng)的是圖7中所示的應(yīng)用窗口部件,程序?qū)崿F(xiàn)代碼如下:
class ApplyEntityWgt:public QWidget
{
public:
QPushButton*m_btnAddMember;
//點(diǎn)擊按鈕
QTextEdit *m_txtApplicationEntities;
//文本框
};
按照總體布局,在主窗口進(jìn)行布局,并設(shè)置界面的主要通訊機(jī)制,程序代碼實(shí)現(xiàn)如下:
void MainWindow::iniMainLayout()
{
//初始化可視化控件
if (!m_glWidget)
m_glWidget=new GlWidget(this);
setCentralWidget(m_glWidget);
//將視圖區(qū)至于主窗口中心
//將向?qū)鋮^(qū)置于主窗口靠左區(qū)域
addDockWidget(Qt::LeftDockWidgetArea,m_wgtDockTree);
//將結(jié)果樹控件至于主窗口靠左區(qū)域
addDockWidget(Qt::LeftDockWidgetArea,m_resDockWgt);
//將模型樹樹控件至于主窗口靠左區(qū)域
addDockWidget(Qt::LeftDockWidgetArea,m_modelDockWgt);
//將工具欄控件至于主窗口頂部區(qū)域
addToolBar(Qt::TopToolBarArea,m_tlbFile);
addToolBar(Qt::TopToolBarArea,m_resultToolBar);
addToolBar(Qt::TopToolBarArea,m_tlbView);
//將元素選擇工具欄至于主窗口右部區(qū)域
addToolBar(Qt::RightToolBarArea,m_tlbSelect);
//界面操作和視圖模塊的信號(hào)與槽信號(hào)關(guān)聯(lián)
connect(m_glWidget,SIGNAL(nodePicked(SW_NODE*,int)),this,SLOT(onNodePicked(SW_NODE*,int)));
connect(m_glWidget,SIGNAL(elementPicked(SW_ELCONN*,int)),this,SLOT(onElementPicked(SW_ELCONN*,int)));
}
有限元軟件的操作往往需要工程師的參與和大量的圖形交互操作完成,在此使用Qt的信號(hào)與槽機(jī)制來實(shí)現(xiàn)操作對(duì)象間的數(shù)據(jù)通信。圖8形象地描述了基于Qt的信號(hào)槽機(jī)制所創(chuàng)建的有限元軟件用戶界面事件響應(yīng)的基本流程。
圖8 有限元軟件界面交互事件響應(yīng)流程
在軟件界面交互操作中,鼠標(biāo)和鍵盤作為關(guān)聯(lián)用戶界面動(dòng)作和視圖響應(yīng)的最主要的輸入設(shè)備,響應(yīng)事件主要包括鼠標(biāo)移動(dòng)、右鍵單擊、右鍵雙擊、左鍵單擊、左鍵雙擊、左鍵按下、左鍵彈出等。在Qt中,這些鼠標(biāo)響應(yīng)事件統(tǒng)一對(duì)應(yīng)于QWidget中的虛擬方法[9],并且不同的鼠標(biāo)事件具有不同的輸入?yún)?shù)。捕獲鼠標(biāo)事件首先會(huì)覆蓋這些虛擬方法,以便鼠標(biāo)事件可以在不同組件上發(fā)生時(shí)調(diào)用相應(yīng)的事件。在實(shí)現(xiàn)代碼中,所有鼠標(biāo)雙擊事件都將調(diào)用mouseMoveEvent()函數(shù),必須通過輸入?yún)?shù)QMouseEvent * event(left,middle或right)的信息來區(qū)分。程序?qū)崿F(xiàn)的主要代碼如下:
void GlWidget::mouseMoveEvent(QMouseEvent*event)
{
QPoint point=event->pos();
Qt::MouseButtons buttons=event->buttons();
if (buttons==Qt::LeftButton)
{ //處理左鍵單擊命令
}
else if (buttons==Qt::MidButton)
{ //處理中鍵單擊命令
}
else if (buttons==Qt::RightButton)
{ //處理右鍵單擊命令
}
else
{ //其他
}
}
最后,實(shí)現(xiàn)軟件用戶界面的語言切換,需要執(zhí)行以下步驟:
1) 使用tr()完成對(duì)用戶可見的文本信息的封裝;
2) 構(gòu)建一種用戶可執(zhí)行語言切換的函數(shù)方法;
3) 對(duì)于主界面中的所有窗口部件,重寫系統(tǒng)響應(yīng)事件changeEvent。
具體程序?qū)崿F(xiàn)中,首先要?jiǎng)?chuàng)建語言文件ts,然后通過Qt linguist進(jìn)行翻譯,接著編譯ts文件生成可直接調(diào)用加載的語言文件qm,最后應(yīng)用QTranslator類加載生成的qm文件,以此來顯示程序所指定的語言類型,主要程序如下:
QTranslator translator;
//提供對(duì)文本輸出的國際化支持
translator.load(":/qm/main_widget_zh");
//加載語言文件
app.installTranslator(&translator);
//整個(gè)程序加載翻譯文件
若要實(shí)現(xiàn)多國語言實(shí)時(shí)切換,在調(diào)用installTranslator方法后,由于各窗體的狀態(tài)會(huì)發(fā)生變化,系統(tǒng)則會(huì)自動(dòng)給每個(gè)窗體發(fā)送信號(hào)并告知changeEvent槽event產(chǎn)生,因此要在切換語言的每個(gè)窗體中重寫changeEvent事件,程序?qū)崿F(xiàn)如下:
void MainWindow::changeEvent(QEvent*e)
{
QWidget::changeEvent(e);
switch (e->type())
{
case QEvent::LanguageChange:
retranslateUi(this);
break;
default:
break;
}
通過將本文所開發(fā)的面向用戶的具有友好操作性的專用有限元軟件用戶界面,與自主有限元計(jì)算系統(tǒng)HAJIF進(jìn)行數(shù)據(jù)關(guān)聯(lián),最終實(shí)現(xiàn)了軟件系統(tǒng)用戶界面與分析計(jì)算、前后處理及其各功能模塊的綜合集成,檢驗(yàn)了上述開發(fā)方法的可行性。以下是基于本文方法所開發(fā)的HAJIF系統(tǒng)的幾個(gè)典型功能的子界面。
如圖9所示,通過實(shí)現(xiàn) HAJIF系統(tǒng)的優(yōu)化設(shè)計(jì)模塊的數(shù)據(jù)輸入界面,大幅提高了優(yōu)化設(shè)計(jì)變量的創(chuàng)建效率,精簡了數(shù)據(jù)輸入量,改善了用戶操作體驗(yàn)。
圖9 HAJIF系統(tǒng)優(yōu)化設(shè)計(jì)模塊的數(shù)據(jù)輸入界面
圖10所示為HAJIF系統(tǒng)后處理功能模塊顯示界面。通過界面鼠標(biāo)點(diǎn)擊三維模型云圖上的感興趣的節(jié)點(diǎn)或者單元,就可以實(shí)現(xiàn)以對(duì)話框和標(biāo)識(shí)的形式進(jìn)行數(shù)據(jù)展示,從而完成了有限元分析過程可視化,提高了工程人員在有限元分析過程中的參與感。
圖10 HAJIF系統(tǒng)后處理模塊數(shù)據(jù)顯示及查詢界面
在有限元軟件系統(tǒng)的設(shè)計(jì)開發(fā)中,不僅需要滿足系統(tǒng)的基本分析功能,更應(yīng)注重系統(tǒng)的使用功能,即系統(tǒng)必須為用戶提供直觀、便捷、友好、靈活的用戶圖形界面,能夠滿足專用模塊的綜合集成和個(gè)性化定制開發(fā)需求。本文通過梳理有限元軟件的界面框架,結(jié)合有限元分析流程,采用MDI的設(shè)計(jì)方式,引入Qt圖形開發(fā)框架,開發(fā)出了一種基于Qt的專用有限元軟件GUI模塊。該模塊是針對(duì)航空結(jié)構(gòu)強(qiáng)度分析與優(yōu)化設(shè)計(jì)軟件系統(tǒng)HAJIF設(shè)計(jì)開發(fā)的,但同時(shí)也形成了有限元軟件GUI模塊高效的設(shè)計(jì)開發(fā)方法,除了應(yīng)用于HAJIF系統(tǒng),還在一些其他有限元軟件中得以應(yīng)用,從而表明了該GUI模塊不僅具備了較高的友好交互性,還極大滿足了有限元軟件系統(tǒng)高效開發(fā)的集成需求。同時(shí)由于Qt組件開發(fā)的跨平臺(tái)特性,符合大型有限元軟件系統(tǒng)多平臺(tái)的開發(fā)要求,也為專用有限元軟件系統(tǒng)集成和定制開發(fā)提供了一條可借鑒的途徑。