From 63b9f7d141709c121bf49ccd650167c0d2415214 Mon Sep 17 00:00:00 2001 From: HwangKC Date: Fri, 14 Mar 2025 16:26:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=AD=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=EF=BC=8C=E6=9B=B4=E6=96=B0=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- applications/emsConfigurer/aboutdialog.ui | 24 +- applications/emsConfigurer/emsConfigurer.pro | 14 +- .../emsConfigurer/emsConfigurer_en_US.ts | 764 ++++++++++++++++++ .../emsConfigurer/emsConfigurer_zh_CN.ts | 764 ++++++++++++++++++ .../formserialportsettingdialog.cpp | 1 - applications/emsConfigurer/globalparameters.h | 19 + applications/emsConfigurer/images/hj-net.png | Bin 20521 -> 46652 bytes applications/emsConfigurer/maindialog.cpp | 13 +- applications/emsConfigurer/mainwindow.cpp | 47 ++ applications/emsConfigurer/mainwindow.h | 11 + applications/emsConfigurer/mainwindow.ui | 28 +- 11 files changed, 1667 insertions(+), 18 deletions(-) create mode 100644 applications/emsConfigurer/emsConfigurer_en_US.ts create mode 100644 applications/emsConfigurer/emsConfigurer_zh_CN.ts diff --git a/applications/emsConfigurer/aboutdialog.ui b/applications/emsConfigurer/aboutdialog.ui index cb642e5..023c18d 100644 --- a/applications/emsConfigurer/aboutdialog.ui +++ b/applications/emsConfigurer/aboutdialog.ui @@ -54,16 +54,22 @@ - WWW.HJ-NET.COM + + + + :/images/hj-net.png + + + true 10 - 120 + 90 621 - 271 + 301 @@ -82,10 +88,10 @@ - 30 - 70 - 601 - 41 + 300 + 10 + 331 + 61 @@ -93,7 +99,9 @@ - + + + buttonBox diff --git a/applications/emsConfigurer/emsConfigurer.pro b/applications/emsConfigurer/emsConfigurer.pro index eb92c85..5e63bd2 100644 --- a/applications/emsConfigurer/emsConfigurer.pro +++ b/applications/emsConfigurer/emsConfigurer.pro @@ -1,4 +1,4 @@ -QT += core gui +QT += core gui sql #DEFINES += _USING_MYSQL_CONNECTOR_ #DEFINES += _USING_QT_MYSQL_CONNECTOR_ @@ -86,6 +86,7 @@ SOURCES += \ mainwindow.cpp \ mysqlutils.cpp \ mytablemodel.cpp \ + newdeviceformdialog.cpp \ ziputils.cpp HEADERS += \ @@ -100,6 +101,7 @@ HEADERS += \ mainwindow.h \ mysqlutils.h \ mytablemodel.h \ + newdeviceformdialog.h \ singleton.h \ ziputils.h \ hv_tcpclient.h \ @@ -110,7 +112,15 @@ FORMS += \ aboutdialog.ui \ formserialportsettingdialog.ui \ maindialog.ui \ - mainwindow.ui + mainwindow.ui \ + newdeviceformdialog.ui + +TRANSLATIONS += \ + emsConfigurer_en_US.ts \ + emsConfigurer_zh_CN.ts + +CONFIG += lrelease +CONFIG += embed_translations # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin diff --git a/applications/emsConfigurer/emsConfigurer_en_US.ts b/applications/emsConfigurer/emsConfigurer_en_US.ts new file mode 100644 index 0000000..74d93cd --- /dev/null +++ b/applications/emsConfigurer/emsConfigurer_en_US.ts @@ -0,0 +1,764 @@ + + + + + AboutDialog + + + About Configurer ... + About Configurer... + About Configurer + + + + TextLabel + + + + + About EMU Configurer Kit + About EMU Configurer Kit + About EMU Configurer Kit + + + + Configurer Kit for EMU Host + Configurer Kit for EMU Kit + Configurer Kit for EMU Kit + + + + Version %1.%2.%3 + Version %1.%2.%3 + Version %1.%2.%3 + + + + Compiled on %1 + Compiled on %1 + Compiled on %1 + + + + DevicePropertyPage + + + First + First + First + + + + Forward + Forward + Forward + + + + Next + Next + Next + + + + Last + Last + Last + + + + 1 + 1 + 11 + + + + Page + Page + Page + + + + Go + Go + Go + + + + Total %d Pages, Current No.%d Page + Total %d Pages, Current No.%d Page + Total %d Pages, Current No.%d Page + + + + Auto Refresh + Auto Refresh + Auto Refresh + + + + 0 + 0 + 0 + + + + Interval(Sec.) + Interval(Sec.) + Interval(Sec.) + + + + Page number should be large than 0 and less than %1 ! + Page number should be large than 0 and less than %1 ! + Page number should be large than 0 and less than %1 ! + + + + Critical Message + Critical Message + Critical Message + + + + FormSerialPortSettingDialog + + + 设备串口设置 + + + + + 设备名称 + + + + + 设备序号 + + + + + 串口类型 + + + + + 从机地址 + + + + + 串口号 + + + + + 波特率 + + + + + 数据位 + + + + + 校验位 + + + + + 停止位 + + + + + 模式 + + + + + 响应超时 + + + + + 轮询间隔 + + + + + + ms + + + + + DSR + + + + + CTS + + + + + DTR + + + + + 插件绑定 + + + + + ... + + + + + 制造商 + + + + + None + + + + + Odd + + + + + Even + + + + + 8 Data bits + + + + + 7 Data bits + + + + + 1 Stop bit + + + + + 2 Stop bits + + + + + RTU + + + + + ASCII + + + + + 2400 + + + + + 4800 + + + + + 9600 + + + + + 19200 + + + + + 38400 + + + + + 57600 + + + + + 115200 + + + + + 128000 + + + + + 153600 + + + + + 230400 + + + + + 460800 + + + + + 921600 + + + + + Serial Port + + + + + Failed to open file: %1 + + + + + Critical + + + + + Service responsed: Permission denyed +Contact Developement for supporting! + + + + + Upload file failed, Press Yes to upload again! + + + + + MainDialog + + + EMU Configurer Kit + + + + + Power + + + + + Battery + + + + + Switch + + + + + Air + + + + + Fan + + + + + Sensor + + + + + Add Device + + + + + Add a new device + + + + + Remove Device + + + + + Remove a device + + + + + + Refresh + + + + + About... + + + + + Show information about EMU Configurer toolkit + + + + + MainWindow + + + EMS Configurer + + + + + Host IP + Host IP + Host IP + + + + Configurer + Configurer + Configurer + + + + + for EMU Host + for EMU Host + for EMU Host + + + + Test + Test + Test + + + + Logon + Logon + Logon + + + + Close + Close + Close + + + + Login name + Login name + Login name + + + + Password + Password + Password + + + + Lang + Lang + Lang + + + + EMU Configurer Kit + EMU Configurer Kit + EMU Configurer Kit + + + + Configurer Kit + Configurer Kit + Configurer Kit + + + + + + Critical Message + Critical Message + Critical Message + + + + Failed to retrieve device data! + Failed to retrieve device data! + Failed to retrieve device data! + + + + + Successfully + Successfully + Successfully + + + + Connect to device database successfully! + Connect to device database successfully! + Connect to device database successfully! + + + + Failed to connect to device database! + Failed to connect to device database! + Failed to connect to device database! + + + + Connect to device data service successfully! + Connect to device data service successfully! + Connect to device data service successfully! + + + + Failed to connect to device data service! + Failed to connect to device data service! + Failed to connect to device data service! + + + + Language + Eng + Eng + + + + MyTableModel + + + Normal + + + + + INFO + + + + + WARN + + + + + ERROR + + + + + NewDeviceFormDialog + + + 设备串口设置 + + + + + OK + + + + + Cancel + + + + + 导入 + + + + + 预定义文件 + + + + + 设备类型 + + + + + 从机地址 + + + + + 波特率 + + + + + 串口号 + + + + + 校验位 + + + + + 停止位 + + + + + 串口类型 + + + + + 数据位 + + + + + 端口配置 + + + + + Select Configuration File + + + + + Database Files (*.db);;All Files (*.*) + + + + + None + + + + + Odd + + + + + Even + + + + + 8 Data bits + + + + + 7 Data bits + + + + + 1 Stop bit + + + + + 2 Stop bits + + + + + 2400 + + + + + 4800 + + + + + 9600 + + + + + 19200 + + + + + 38400 + + + + + 57600 + + + + + 115200 + + + + + 128000 + + + + + 153600 + + + + + 230400 + + + + + 460800 + + + + + 921600 + + + + + Serial Port + + + + diff --git a/applications/emsConfigurer/emsConfigurer_zh_CN.ts b/applications/emsConfigurer/emsConfigurer_zh_CN.ts new file mode 100644 index 0000000..f371799 --- /dev/null +++ b/applications/emsConfigurer/emsConfigurer_zh_CN.ts @@ -0,0 +1,764 @@ + + + + + AboutDialog + + + About Configurer ... + 关于配置器... + 关于配置器... + + + + TextLabel + + + + + About EMU Configurer Kit + 关于EMU配置器工具 + 关于EMU配置器工具 + + + + Configurer Kit for EMU Host + EMU配置工具 + EMU配置工具 + + + + Version %1.%2.%3 + 版本号 %1.%2.%3 + 版本号 %1.%2.%3 + + + + Compiled on %1 + 编译于 %1 + 编译于 %1 + + + + DevicePropertyPage + + + First + 首行 + 首行 + + + + Forward + 前翻 + 前翻 + + + + Next + 后翻 + 后翻 + + + + Last + 最后 + 最后 + + + + 1 + 1 + 1 + + + + Page + + + + + + Go + 前往 + 前往 + + + + Total %d Pages, Current No.%d Page + 共 %d 页, 当前第 %d 页 + 共 %d 页, 当前第 %d 页 + + + + Auto Refresh + 自动刷新 + 自动刷新 + + + + 0 + 0 + 0 + + + + Interval(Sec.) + 间隔(秒) + 间隔(秒) + + + + Page number should be large than 0 and less than %1 ! + 页数应该大于0且小于 %1 1 + 页数应该大于0且小于 %1 1 + + + + Critical Message + 严重错误 + 严重错误 + + + + FormSerialPortSettingDialog + + + 设备串口设置 + + + + + 设备名称 + + + + + 设备序号 + + + + + 串口类型 + + + + + 从机地址 + + + + + 串口号 + + + + + 波特率 + + + + + 数据位 + + + + + 校验位 + + + + + 停止位 + + + + + 模式 + + + + + 响应超时 + + + + + 轮询间隔 + + + + + + ms + + + + + DSR + + + + + CTS + + + + + DTR + + + + + 插件绑定 + + + + + ... + + + + + 制造商 + + + + + None + + + + + Odd + + + + + Even + + + + + 8 Data bits + + + + + 7 Data bits + + + + + 1 Stop bit + + + + + 2 Stop bits + + + + + RTU + + + + + ASCII + + + + + 2400 + + + + + 4800 + + + + + 9600 + + + + + 19200 + + + + + 38400 + + + + + 57600 + + + + + 115200 + + + + + 128000 + + + + + 153600 + + + + + 230400 + + + + + 460800 + + + + + 921600 + + + + + Serial Port + + + + + Failed to open file: %1 + + + + + Critical + + + + + Service responsed: Permission denyed +Contact Developement for supporting! + + + + + Upload file failed, Press Yes to upload again! + + + + + MainDialog + + + EMU Configurer Kit + + + + + Power + + + + + Battery + + + + + Switch + + + + + Air + + + + + Fan + + + + + Sensor + + + + + Add Device + + + + + Add a new device + + + + + Remove Device + + + + + Remove a device + + + + + + Refresh + + + + + About... + + + + + Show information about EMU Configurer toolkit + + + + + MainWindow + + + EMS Configurer + + + + + Host IP + 主机IP + 主机IP + + + + Configurer + 配置工具 + 配置工具 + + + + + for EMU Host + 支持EMU主机 + 支持EMU主机 + + + + Test + 测试 + 测试 + + + + Logon + 登录 + 登录 + + + + Close + 退出 + 退出 + + + + Login name + 登录账号 + 登录账号 + + + + Password + 登录密码 + 登录密码 + + + + Lang + 语言 + 语言 + + + + EMU Configurer Kit + EMU Configurer Kit + EMU Configurer Kit + + + + Configurer Kit + 配置工具 + 配置工具 + + + + + + Critical Message + 严重错误 + 严重错误 + + + + Failed to retrieve device data! + 检索设备数据失败! + 检索设备数据失败! + + + + + Successfully + 成功 + 成功 + + + + Connect to device database successfully! + 成功连接设备数据库! + 成功连接设备数据库! + + + + Failed to connect to device database! + 不能连接设备数据库! + 不能连接设备数据库! + + + + Connect to device data service successfully! + 成功连接到设备数据服务! + 成功连接到设备数据服务! + + + + Failed to connect to device data service! + 不能连接到设备数据服务! + 不能连接到设备数据服务! + + + + Language + 中文 + 中文 + + + + MyTableModel + + + Normal + + + + + INFO + + + + + WARN + + + + + ERROR + + + + + NewDeviceFormDialog + + + 设备串口设置 + + + + + OK + + + + + Cancel + + + + + 导入 + + + + + 预定义文件 + + + + + 设备类型 + + + + + 从机地址 + + + + + 波特率 + + + + + 串口号 + + + + + 校验位 + + + + + 停止位 + + + + + 串口类型 + + + + + 数据位 + + + + + 端口配置 + + + + + Select Configuration File + + + + + Database Files (*.db);;All Files (*.*) + + + + + None + + + + + Odd + + + + + Even + + + + + 8 Data bits + + + + + 7 Data bits + + + + + 1 Stop bit + + + + + 2 Stop bits + + + + + 2400 + + + + + 4800 + + + + + 9600 + + + + + 19200 + + + + + 38400 + + + + + 57600 + + + + + 115200 + + + + + 128000 + + + + + 153600 + + + + + 230400 + + + + + 460800 + + + + + 921600 + + + + + Serial Port + + + + diff --git a/applications/emsConfigurer/formserialportsettingdialog.cpp b/applications/emsConfigurer/formserialportsettingdialog.cpp index 76bc73f..358e7fa 100644 --- a/applications/emsConfigurer/formserialportsettingdialog.cpp +++ b/applications/emsConfigurer/formserialportsettingdialog.cpp @@ -9,7 +9,6 @@ #include #include #include - #include #include "frame_define.h" diff --git a/applications/emsConfigurer/globalparameters.h b/applications/emsConfigurer/globalparameters.h index e5cf64d..b4cc36e 100644 --- a/applications/emsConfigurer/globalparameters.h +++ b/applications/emsConfigurer/globalparameters.h @@ -159,4 +159,23 @@ public: int m_connfd; }; +//配置数据库的相关结构 +typedef struct _tagCfgTab_SmartDeviceTypeItem +{ + int TypeID; + std::string Description; + int ClassType; + int PortConfig; + int InterfaceType; + int StationType; + int EquipmentCode; + std::string EquipmentModel; + std::string Manufacturer; + std::string ProtocolVersion; + std::string SpecialOption; + std::string Notes; +} CfgTabSmartDeviceTypeItem; + +typedef std::vector vecCfgTab_SmartDeviceType; + #endif // GLOBALPARAMETERS_H diff --git a/applications/emsConfigurer/images/hj-net.png b/applications/emsConfigurer/images/hj-net.png index f4d1814dd0ac81463d497e74731e587038d7d42d..624f778015b79882ca70020ce86c341117633925 100644 GIT binary patch literal 46652 zcmXtfWk8dE)HXe7X%N`x?p6i}h=6oRcO%{10>bDVA*rB((j_&zCM_MK8%BfFv;XtH z&xdXI_GRZj=XcI^o$H)CPE%cx5bp&Z8X6j*veFxEG&C#_>U!ZB4(k0_d%q3!f$Oeh z=!J#`?EdeC?mF%xjfU26to%k+*FXQT-KUvlAf)PPlup_{N8e~V&A}ytSEUioAa5lZ z_gO-fsOL|+xVKlBrKjhK8l5kcPN-k7&Uu8z&cso9^7z9ZPl1%cRHuyea_;d<%)iTj z1?=}j3IeX+&Kmk^@BMuKmUn2*Ur~uqL^-1s;F}Pe;8kK%VrFiZUyz1Woh;kq2QlZS%9aXC?#*n58g=+qL3B9O`8&yMdz*g=ZZVOm1j~f^Ve-Eghv!;Vr02hC z%u40`)D#XJ{qZ8Jh4Mz0McM?NhqGQxN;RFR8Xk!51Eq=HQk42J1#C#wR?Vk7%|V-C zuDO1P@D!1qkLh3OtTtIe%kAaE{!kBO;(k1!6R>T$S698MY7u)fm%WrBG^y5Hk@yh1 z$G7!)-#tN%%b}7Q$8M2M_!A|ty!zbVIAI~UtVd8D#&TOP`npeH`sy>*&@Bsu;daq--qxoau&Qf?k6v$q`&3cfK+u2bv;Swo35`7Ytzq_kB z)Sc*G))p!6Ai3Q8>JZgLuNbZv0T`F^piF$ZBV1X**>$pa)h3}9>J@9dYjk)4&%Zpd z*$AapbShPMc@7{pz4r0`378Gx3RDiBi}!Wtgsd3y`1Pt-f3wUUqcV-)b4FW152mFt zuM04i>g68|d>F-SGLR|-cv%bh11V(;^fOhwzDvGxCn2Q}D_Q=@9kElSY%h6G0^pss z1iUy1LzhZ1Ry)KQ@7*hm2&*>?Uxlwm(C*gj^9B%ALfWxVUlaf6-FYK?h{Qidrw`M|0VJx`4gh2x0kqQU92 zub66i92&)4y)RZ6UPr5eDg?b3tX;LfLP7fu0}`Y!d`n~3`RdafD0p2}Ut-WTnlwRD zefm@glR`cQ_r+3K>s1k3DhB%lk#bQR(sI)HCxQqyhk;Hq9T@+AzvJd2d^hAbxusRn z++MeS{5*%-mVU9`Lt6igZr^jsYdn%W8T-t&K76lVYK{an!`M~IF~gY3ect$U+R~1? z5o~0=+cx0*xZd+t* zC#*d9Ng0mcV*C}R$#jGqXccylN=@Ndg@!%**_Sm@oze_6ELkN8&Ru`=$rPHX?3X&W zWcj?or)dWZcJiOejCL;1vtP1^NJSt2y&K=2S{}q^r)+1C4wgh#&42EI8W6K?FdDPh z@_-LUKeu?WgUR6vO1g9LY=AM@>%T812j0E> z1bi!&)3p?QUb$7<>d}vsFy7AJAxN%UTep-WJR0{V1F2h$9jzdzHaF?_PX61|8y{#iMybs}iLAFYG&szIYpwWt} z^~PN^2amWD?A&4xQ`B^KbeW02e?p$| z(;s*2#5n?wN}6?dw7c|ESkw5$99Zz-XXCzY;MC4C(Q@_eC*cPd1=S0+UjSnllAGo2 z_XW5CtL4BxzFp7Ou`)$2=ihbxNXO*8uPt~tGT|nl`4ll^fjshM>s8p&`1eGUfYX6=>zXH?~pg%zp8k8sO`wV46R@p?EoeUe@*%jCBC0vfdk9Ieeaw2YQix z{XI%WdJu7>WYUZgM>wYNOS$Efk2JuGXJpM?f)YH%Op#S^VbIt#>K)1lsR%#84*h7g zZMwk`G>^mb_MRE(G0a}+Yt329bN|xD5vj3B∈48(jwX{`sjXPnxFed7Amf(<67F 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 TrPud2Hv(X5>1fex?)&J!Z)*Ei diff --git a/applications/emsConfigurer/maindialog.cpp b/applications/emsConfigurer/maindialog.cpp index 9276325..309e9b1 100644 --- a/applications/emsConfigurer/maindialog.cpp +++ b/applications/emsConfigurer/maindialog.cpp @@ -20,6 +20,7 @@ #include "devicepropertypage.h" #include "formserialportsettingdialog.h" #include "aboutdialog.h" +#include "newdeviceformdialog.h" MainDialog::MainDialog(QWidget *parent) : QMainWindow (parent), @@ -123,10 +124,6 @@ void MainDialog::CreateToolbar() QHBoxLayout *layout = new QHBoxLayout(toolBarWidget); layout->setContentsMargins(0, 0, 0, 0); // 去除内边距 - // 添加一个弹性空间以推送图标到右侧 - QSpacerItem *spacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); - layout->addItem(spacer); - // Create actions for the toolbar QAction *action1 = new QAction(QIcon(":/images/icons8-add-64.png"), tr("Add Device"), this); action1->setToolTip(tr("Add a new device")); @@ -145,6 +142,11 @@ void MainDialog::CreateToolbar() m_pMainToolBar->addAction(action2); m_pMainToolBar->addAction(action4); m_pMainToolBar->addSeparator(); + + QWidget *spacerWidget = new QWidget(); + spacerWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + m_pMainToolBar->addWidget(spacerWidget); + m_pMainToolBar->addAction(action3); // 将工具栏的 widget 设置为包含图标和占位符的 widget @@ -220,7 +222,8 @@ void MainDialog::loadWindowState() //增加设备 void MainDialog::onToolButton1Clicked() { - FormSerialPortSettingDialog* dlg = new FormSerialPortSettingDialog(this); + //FormSerialPortSettingDialog* dlg = new FormSerialPortSettingDialog(this); + NewDeviceFormDialog* dlg = new NewDeviceFormDialog(this); dlg->setWindowFlags(dlg->windowFlags()&~(Qt::WindowMinMaxButtonsHint|Qt::WindowContextHelpButtonHint)); //dlg.setModal(true); dlg->show(); diff --git a/applications/emsConfigurer/mainwindow.cpp b/applications/emsConfigurer/mainwindow.cpp index 5dc286d..2147940 100644 --- a/applications/emsConfigurer/mainwindow.cpp +++ b/applications/emsConfigurer/mainwindow.cpp @@ -2,6 +2,8 @@ #include "ui_mainwindow.h" #include #include +#include +#include #include #include "MainDialog.h" @@ -39,6 +41,12 @@ MainWindow::MainWindow(QWidget *parent) QFont font2("Arial", 12, QFont::Bold); ui->productName2->setText(tr("for EMU Host")); ui->productName2->setFont(font2); + + QMenu *menu = new QMenu(ui->pb_Lang); + menu->addAction("中文", this, &MainWindow::setChinese); + menu->addAction("Eng", this, &MainWindow::setEnglish); + ui->pb_Lang->setMenu(menu); + retranslateUI(); } MainWindow::~MainWindow() @@ -141,3 +149,42 @@ void MainWindow::on_pb_Test_clicked() QMessageBox::critical(this, tr("Critical Message"),tr("Failed to connect to device data service!")); } +void MainWindow::setChinese() +{ + switchLanguage("emsConfigurer_zh_CN"); +} +void MainWindow::setEnglish() +{ + switchLanguage("emsConfigurer_en_US"); +} + +void MainWindow::switchLanguage(const QString &lang) +{ + loadLanguage(lang); + retranslateUI(); // 立即更新界面 +} + +void MainWindow::retranslateUI() +{ + ui->pb_Lang->setText(tr("Language")); + ui->retranslateUi(this); +} + +void MainWindow::loadLanguage(const QString &lang) +{ + qApp->removeTranslator(&translator); + QString l = ":/i18n/" + lang + ".qm"; + if (translator.load(l)) + { + qApp->installTranslator(&translator); + } +} + +void MainWindow::changeEvent(QEvent *event) +{ + // if (event->type() == QEvent::LanguageChange) + // { + // ui->retranslateUi(this); + // } + QWidget::changeEvent(event); +} diff --git a/applications/emsConfigurer/mainwindow.h b/applications/emsConfigurer/mainwindow.h index f066cc2..628514a 100644 --- a/applications/emsConfigurer/mainwindow.h +++ b/applications/emsConfigurer/mainwindow.h @@ -3,6 +3,8 @@ #pragma execution_character_set("utf-8") #include +#include + #include class MainDialog; @@ -29,14 +31,23 @@ protected: void setIp(const QString &ip); bool testDatabase(); bool testServerEcho(); //测试后端服务器响应 + void changeEvent(QEvent *event) override; private slots: void on_pb_Logon_clicked(); void on_pb_Test_clicked(); + void setChinese(); + void setEnglish(); + +private: + void switchLanguage(const QString &lang); + void retranslateUI(); + void loadLanguage(const QString &lang); private: Ui::MainWindow *ui; MainDialog* m_pMainDialog; + QTranslator translator; }; #endif // MAINWINDOW_H diff --git a/applications/emsConfigurer/mainwindow.ui b/applications/emsConfigurer/mainwindow.ui index b59f656..b9ebf92 100644 --- a/applications/emsConfigurer/mainwindow.ui +++ b/applications/emsConfigurer/mainwindow.ui @@ -103,7 +103,13 @@ - WWW.HJ-NET.COM + + + + :/images/hj-net.png + + + true @@ -118,6 +124,9 @@ + + + Logon @@ -213,6 +222,19 @@ + + + + 530 + 20 + 71 + 29 + + + + Lang + + @@ -230,6 +252,8 @@ pb_Logon pb_Close - + + +