修改启动工具界面 以及部分逻辑修改

This commit is contained in:
jxder 2025-06-16 20:27:07 +08:00
parent af3dee2b44
commit 049ae35d11
31 changed files with 10070 additions and 301 deletions

View File

@ -41,6 +41,9 @@ call install_nginx.bat
::数据库升级 ::数据库升级
cd /d "%scriptPath%" cd /d "%scriptPath%"
cd "..\product\%OS_DEFINE%_%SETUP_DEBUG_RELEASE%" cd "..\product\%OS_DEFINE%_%SETUP_DEBUG_RELEASE%"
set ceshi="..\product\%OS_DEFINE%_%SETUP_DEBUG_RELEASE%"
echo %ceshi%
start db_installer.exe start db_installer.exe
cd /d "%scriptPath%" cd /d "%scriptPath%"

View File

@ -146,7 +146,7 @@ void pj_manager::loadQss()
void pj_manager::initUi() void pj_manager::initUi()
{ {
setWindowTitle(tr("工程管理")); setWindowTitle(tr("工程备份"));
#ifdef OS_LINUX #ifdef OS_LINUX
setWindowIcon( QIcon( ":res/db_manager.png" ) ); setWindowIcon( QIcon( ":res/db_manager.png" ) );
#endif #endif

View File

@ -2,7 +2,7 @@
#define CMENUSTRING_H #define CMENUSTRING_H
const char *g_designer_action = QT_TR_NOOP("图形设计"); const char *g_designer_action = QT_TR_NOOP("组态制作");
const char *g_explorer_action = QT_TR_NOOP("图形浏览"); const char *g_explorer_action = QT_TR_NOOP("图形浏览");
const char *g_file_operation = QT_TR_NOOP("文件(&F)"); const char *g_file_operation = QT_TR_NOOP("文件(&F)");

View File

@ -17,8 +17,7 @@ SUBDIRS += \
sys_ctrl \ sys_ctrl \
sys_nodeinfo_tran \ sys_nodeinfo_tran \
show_node_info \ show_node_info \
sys_launcher_srv \ sys_launcher_srv
sys_file_auto
sys_dog_auth_api.depends = sys_license_auth_api sys_dog_auth_api.depends = sys_license_auth_api
sys_dog_auth_check.depends = sys_license_auth_api sys_dog_auth_api sys_dog_auth_check.depends = sys_license_auth_api sys_dog_auth_api

View File

@ -1,6 +1,6 @@
{ {
"buttoninfo":{ "buttoninfo":{
"count":19, "count":20,
"num0":{ "num0":{
"zh":"人机界面", "zh":"人机界面",
"en":"HMI", "en":"HMI",
@ -44,14 +44,14 @@
"icon":"../../resource/zh/sys_startup/DevModeling.png" "icon":"../../resource/zh/sys_startup/DevModeling.png"
}, },
"num6":{ "num6":{
"zh":"图形设计", "zh":"组态制作",
"en":"Graphic\ndesign", "en":"Graphic\ndesign",
"cmd":"hmi.exe", "cmd":"hmi.exe",
"param":"", "param":"",
"icon":"../../resource/zh/sys_startup/PictureConfiguration.png" "icon":"../../resource/zh/sys_startup/PictureConfiguration.png"
}, },
"num7":{ "num7":{
"zh":"工程管理", "zh":"工程备份",
"en":"Project\nmanagement", "en":"Project\nmanagement",
"cmd":"db_manager.exe", "cmd":"db_manager.exe",
"param":"", "param":"",
@ -134,16 +134,25 @@
"cmd":"tsdb_data_export.exe", "cmd":"tsdb_data_export.exe",
"param":"", "param":"",
"icon":"../../resource/zh/sys_startup/DatabaseCheck.png" "icon":"../../resource/zh/sys_startup/DatabaseCheck.png"
},
"num19":{
"zh":"启动/停止",
"en":"Start/Stop",
"cmd":"SysCtrl",
"param":"",
"icon":"../../resource/zh/sys_startup/DatabaseCheck.png"
} }
}, },
"page1": "page1":
[ [
"num19",
"num0", "num0",
"num4", "num4",
"num5", "num5",
"num6", "num6",
"num7", "num2",
"num10" "num10",
"num7"
], ],
"page3":{ "page3":{
"count":3, "count":3,

View File

@ -97,7 +97,7 @@ int CKBD104::SetBaseAddr(void *address)
//规约映射表初始化 //规约映射表初始化
if(m_ptrCFesBase!=NULL) if(m_ptrCFesBase!=NULL)
{ {
m_ptrCFesBase->ProtocolRtuInitByParam1((char*)"kbd104"); m_ptrCFesBase->ProtocolRtuInitByParam1((char*)"hmjs104");
//2020-02-13 thxiao ReadConfigParam()需要使用m_ptrCFesBase所以改为SetBaseAddr()处调用 //2020-02-13 thxiao ReadConfigParam()需要使用m_ptrCFesBase所以改为SetBaseAddr()处调用
ReadConfigParam(); ReadConfigParam();
} }
@ -309,20 +309,20 @@ int CKBD104::ReadConfigParam()
if (m_ptrCFesBase == NULL) if (m_ptrCFesBase == NULL)
return iotFailed; return iotFailed;
m_ProtocolId = m_ptrCFesBase->GetProtocolID((char*)"kbd104"); m_ProtocolId = m_ptrCFesBase->GetProtocolID((char*)"hmjs104");
if (m_ProtocolId == -1) if (m_ProtocolId == -1)
{ {
LOGDEBUG("ReadConfigParam ProtoclID error"); LOGDEBUG("ReadConfigParam ProtoclID error");
return iotFailed; return iotFailed;
} }
LOGINFO("kbd104 ProtoclID=%d", m_ProtocolId); LOGINFO("hmjs104 ProtoclID=%d", m_ProtocolId);
if (config.load("../../data/fes/", "kbd104.xml") == iotFailed) if (config.load("../../data/fes/", "hmjs104.xml") == iotFailed)
{ {
LOGDEBUG("kbd104 load iec104.xml error"); LOGDEBUG("hmjs104 load iec104.xml error");
return iotSuccess; return iotSuccess;
} }
LOGDEBUG("kbd104 load iec104.xml ok"); LOGDEBUG("hmjs104 load iec104.xml ok");
sprintf(strRtuNo,"SYS"); sprintf(strRtuNo,"SYS");
std::string strValue; std::string strValue;

View File

@ -419,13 +419,13 @@ int CKBD104DataProcThread::ReadConfigParam()
//默认配置 //默认配置
m_AppData.respTimeoutReset = m_ptrCFesChan->m_Param.RespTimeout; m_AppData.respTimeoutReset = m_ptrCFesChan->m_Param.RespTimeout;
//if(config.load("C:/ISCS6000_HOME/data/","kbd104.xml")==iotFailed) //if(config.load("C:/ISCS6000_HOME/data/","hmjs104.xml")==iotFailed)
if(config.load("../../data/fes/","kbd104.xml")==iotFailed) if(config.load("../../data/fes/","hmjs104.xml")==iotFailed)
{ {
LOGERROR("kbd104 读取配置文件kbd104.xml失败\n"); LOGERROR("hmjs104 读取配置文件hmjs104.xml失败\n");
return iotFailed; return iotFailed;
} }
LOGINFO("kbd104 读取配置文件kbd104.xml成功\n"); LOGINFO("hmjs104 读取配置文件hmjs104.xml成功\n");
sprintf(strRtuNo,"RTU%d",m_ptrCFesRtu->m_Param.RtuNo); sprintf(strRtuNo,"RTU%d",m_ptrCFesRtu->m_Param.RtuNo);
if(config.getIntValue(strRtuNo,"alldata_interval",ivalue) == iotSuccess) if(config.getIntValue(strRtuNo,"alldata_interval",ivalue) == iotSuccess)
{ {

View File

@ -1,7 +1,7 @@
QT += core QT += core
QT -= gui QT -= gui
TARGET = kbd104 TARGET = hmjs104
TEMPLATE = lib TEMPLATE = lib
SOURCES += \ SOURCES += \

View File

@ -1,7 +1,7 @@
#CONFIG -= qt #CONFIG -= qt
QT += serialport QT += serialport
TARGET = kbd511s_io TARGET = hmjs511s_io
TEMPLATE = lib TEMPLATE = lib
SOURCES += \ SOURCES += \

View File

@ -74,7 +74,7 @@ int Ckbd511s_ioRtu::SetBaseAddr(void *address)
//规约映射表初始化 //规约映射表初始化
if (m_ptrCFesBase != NULL) if (m_ptrCFesBase != NULL)
{ {
m_ptrCFesBase->ProtocolRtuInitByParam1((char*)"kbd511s_io"); m_ptrCFesBase->ProtocolRtuInitByParam1((char*)"hmjs511s_io");
} }
return iotSuccess; return iotSuccess;
@ -83,7 +83,7 @@ int Ckbd511s_ioRtu::SetBaseAddr(void *address)
int Ckbd511s_ioRtu::SetProperty(int IsMainFes) int Ckbd511s_ioRtu::SetProperty(int IsMainFes)
{ {
g_kbd511s_ioRtuIsMainFes = IsMainFes; g_kbd511s_ioRtuIsMainFes = IsMainFes;
LOGDEBUG("Ckbd511s_ioRtu::SetProperty g_kbd511s_ioRtuIsMainFes:%d",IsMainFes); LOGDEBUG("Chmjs511s_ioRtu::SetProperty g_hmjs511s_ioRtuIsMainFes:%d",IsMainFes);
return iotSuccess; return iotSuccess;
} }

View File

@ -322,7 +322,7 @@ void CKBD61850m::InitRTUData()
ProtocolId = -1; ProtocolId = -1;
for(i=0;i<m_ptrCFesBase->m_ProtocolNum;i++) for(i=0;i<m_ptrCFesBase->m_ProtocolNum;i++)
{ {
if(strstr(m_ptrCFesBase->m_protoclName[i].Name,"kbd61850m")!=NULL) if(strstr(m_ptrCFesBase->m_protoclName[i].Name,"hmjs61850m")!=NULL)
{ {
ProtocolId = m_ptrCFesBase->m_protoclName[i].ProtocolId; ProtocolId = m_ptrCFesBase->m_protoclName[i].ProtocolId;
break; break;

View File

@ -1,7 +1,7 @@
QT -= core gui QT -= core gui
CONFIG -= qt CONFIG -= qt
TARGET = kbd61850m TARGET = hmjs61850m
TEMPLATE = lib TEMPLATE = lib
SOURCES += \ SOURCES += \

View File

@ -98,7 +98,7 @@ void AppMngForm::customContext(const QPoint &pos)
emit sigStartApp(item->data(0,Qt::UserRole+1).toString()); emit sigStartApp(item->data(0,Qt::UserRole+1).toString());
}); });
connect(appStop, &QAction::triggered, [=](){ connect(appStop, &QAction::triggered, [=](){
CLoginDlg dlg; CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT"; QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm); dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证")); dlg.setOkButtonText(tr("验证"));
@ -110,7 +110,7 @@ void AppMngForm::customContext(const QPoint &pos)
} }
}); });
connect(appRestart, &QAction::triggered, [=](){ connect(appRestart, &QAction::triggered, [=](){
CLoginDlg dlg; CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT"; QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm); dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证")); dlg.setOkButtonText(tr("验证"));
@ -198,7 +198,7 @@ void AppMngForm::appItemClicked(QTreeWidgetItem *item, int column)
int appStatus = item->data(1,Qt::UserRole).toInt(); int appStatus = item->data(1,Qt::UserRole).toInt();
if(appStatus == EN_APP_RUNNING) if(appStatus == EN_APP_RUNNING)
{ {
CLoginDlg dlg; CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT"; QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm); dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证")); dlg.setOkButtonText(tr("验证"));
@ -212,7 +212,7 @@ void AppMngForm::appItemClicked(QTreeWidgetItem *item, int column)
{ {
if(checkAppStatus(item->data(0,Qt::UserRole).toInt())== EN_APP_HALF)//半运行状态 if(checkAppStatus(item->data(0,Qt::UserRole).toInt())== EN_APP_HALF)//半运行状态
{ {
CLoginDlg dlg; CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT"; QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm); dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证")); dlg.setOkButtonText(tr("验证"));

View File

@ -36,10 +36,10 @@ ButtonForm::~ButtonForm()
delete ui; delete ui;
} }
void ButtonForm::setTitleHide(bool hide) //void ButtonForm::setTitleHide(bool hide)
{ //{
ui->label->setHidden(hide); // ui->label->setHidden(hide);
} //}
void ButtonForm::addToolButtons(QVector<QString> &buttonVec) void ButtonForm::addToolButtons(QVector<QString> &buttonVec)
{ {
@ -62,20 +62,29 @@ void ButtonForm::addToolButtons(QVector<QString> &buttonVec)
continue; continue;
} }
QToolButton *toolBtn = new QToolButton(this); QToolButton *toolBtn = new QToolButton(this);
toolBtn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); toolBtn->setToolButtonStyle(Qt::ToolButtonTextOnly);
QIcon icon = QIcon(buttonInfo.m_icon); //QIcon icon = QIcon(buttonInfo.m_icon);
QSize size(45,45); //QSize size(45,45);
QSize size(20,45);
toolBtn->setIconSize(size); toolBtn->setIconSize(size);
toolBtn->setMaximumHeight(80); toolBtn->setMaximumHeight(30);
toolBtn->setMinimumHeight(80); toolBtn->setMinimumHeight(30);
toolBtn->setMaximumWidth(80); toolBtn->setMaximumWidth(100);
toolBtn->setMinimumWidth(80); toolBtn->setMinimumWidth(80);
toolBtn->setIcon(icon); //toolBtn->setIcon(icon);
toolBtn->setText(m_bIsZh?buttonInfo.m_zh:buttonInfo.m_en); toolBtn->setText(m_bIsZh?buttonInfo.m_zh:buttonInfo.m_en);
connect(toolBtn,&QToolButton::clicked,[=](){ connect(toolBtn,&QToolButton::clicked,[=](){
executeTask(buttonInfo.m_cmd,buttonInfo.m_param); executeTask(buttonInfo.m_cmd,buttonInfo.m_param);
}); });
if(buttonInfo.m_cmd =="SysCtrl")
{
connect(this, &ButtonForm::sigEnableStatus, [=](bool enabled) {
toolBtn->setEnabled(enabled);
});
}
layOut->addWidget(toolBtn); layOut->addWidget(toolBtn);
} }
if(m_mode == EN_SYS_STARTUP_PAGE3) if(m_mode == EN_SYS_STARTUP_PAGE3)
@ -84,13 +93,18 @@ void ButtonForm::addToolButtons(QVector<QString> &buttonVec)
} }
} }
void ButtonForm::setTitleText(const QString &title) //void ButtonForm::setTitleText(const QString &title)
{ //{
ui->label->setText(title); // ui->label->setText(title);
} //}
void ButtonForm::executeTask(QString cmd,QString param) void ButtonForm::executeTask(QString cmd,QString param)
{ {
if(cmd =="SysCtrl")
{
emit sigButtonClick();
return ;
}
if(cmd =="DogCheck") if(cmd =="DogCheck")
{ {
dogCheckDlg(); dogCheckDlg();
@ -118,7 +132,7 @@ void ButtonForm::executeTask(QString cmd,QString param)
if(cmd.contains("ReportEdit")) if(cmd.contains("ReportEdit"))
{ {
CLoginDlg dlg; CLoginDlg dlg(this);
QString perm ="FUNC_NOM_RPT_EDIT"; QString perm ="FUNC_NOM_RPT_EDIT";
dlg.setCheckPerm(perm); dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证")); dlg.setOkButtonText(tr("验证"));

View File

@ -15,14 +15,15 @@ public:
explicit ButtonForm(int mode, bool isZh, QWidget *parent = 0); explicit ButtonForm(int mode, bool isZh, QWidget *parent = 0);
~ButtonForm(); ~ButtonForm();
void setTitleHide(bool hide); //void setTitleHide(bool hide);
void addToolButtons(QVector<QString> &buttonVec); void addToolButtons(QVector<QString> &buttonVec);
void setTitleText(const QString & title); //void setTitleText(const QString & title);
signals: signals:
void sigLogText(const QString &logText); void sigLogText(const QString &logText);
void sigButtonClick();
void sigEnableStatus(bool enabled);
private: private:
void executeTask(QString cmd, QString param); void executeTask(QString cmd, QString param);

View File

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>548</width> <width>542</width>
<height>100</height> <height>46</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -54,25 +54,6 @@
<number>0</number> <number>0</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>25</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QWidget" name="widget" native="true"/> <widget class="QWidget" name="widget" native="true"/>
</item> </item>
</layout> </layout>

View File

@ -11,7 +11,9 @@
#include "StatusForm.h" #include "StatusForm.h"
#include "VersionForm.h" #include "VersionForm.h"
#include "SetupFunc.h" #include "SetupFunc.h"
#include <QPicture>
#include <QPixmap>
#include <QTabWidget>
#include <QLocalSocket> #include <QLocalSocket>
#include <QLocalServer> #include <QLocalServer>
#include <QGridLayout> #include <QGridLayout>
@ -30,6 +32,8 @@
#include <QString> #include <QString>
#include "pub_utility_api/FileUtil.h" #include "pub_utility_api/FileUtil.h"
#include <QTabBar>
using namespace sys_startup; using namespace sys_startup;
using namespace iot_public; using namespace iot_public;
using namespace iot_idl; using namespace iot_idl;
@ -50,6 +54,7 @@ MainWindow::MainWindow(bool isZh, QWidget *parent) :
m_pVersionMng(Q_NULLPTR), m_pVersionMng(Q_NULLPTR),
m_pSysTrayIcon(Q_NULLPTR), m_pSysTrayIcon(Q_NULLPTR),
m_updateTreeTimer(Q_NULLPTR), m_updateTreeTimer(Q_NULLPTR),
m_startOrStopButtonTimer(Q_NULLPTR),
m_updateSysTimer(Q_NULLPTR), m_updateSysTimer(Q_NULLPTR),
m_startSysTimer(Q_NULLPTR), m_startSysTimer(Q_NULLPTR),
m_stopSysTimer(Q_NULLPTR), m_stopSysTimer(Q_NULLPTR),
@ -151,6 +156,12 @@ MainWindow::~MainWindow()
delete m_updateTreeTimer; delete m_updateTreeTimer;
} }
m_updateTreeTimer = Q_NULLPTR; m_updateTreeTimer = Q_NULLPTR;
if(m_startOrStopButtonTimer)
{
m_startOrStopButtonTimer->stop();
delete m_startOrStopButtonTimer;
}
m_startOrStopButtonTimer = Q_NULLPTR;
if(m_updateSysTimer) if(m_updateSysTimer)
{ {
@ -241,6 +252,7 @@ void MainWindow::startWork()
{ {
m_brushDataThread->resume(); m_brushDataThread->resume();
m_updateTreeTimer->start(); m_updateTreeTimer->start();
m_startOrStopButtonTimer->start();
m_updateSysTimer->start(); m_updateSysTimer->start();
m_dogAndLocalNetTimer->start(); m_dogAndLocalNetTimer->start();
} }
@ -250,6 +262,7 @@ void MainWindow::stopWork()
m_dogAndLocalNetTimer->stop(); m_dogAndLocalNetTimer->stop();
m_updateSysTimer->stop(); m_updateSysTimer->stop();
m_updateTreeTimer->stop(); m_updateTreeTimer->stop();
m_startOrStopButtonTimer->stop();
m_brushDataThread->suspend(); m_brushDataThread->suspend();
} }
@ -276,6 +289,7 @@ void MainWindow::initVariables()
if(m_pStartUp == Q_NULLPTR) if(m_pStartUp == Q_NULLPTR)
{ {
m_pStartUp = new StartUpForm; m_pStartUp = new StartUpForm;
//ui->startUpFrame->setHidden(true);
} }
if(m_pAppMng == Q_NULLPTR) if(m_pAppMng == Q_NULLPTR)
{ {
@ -330,7 +344,8 @@ void MainWindow::initVariables()
m_brushDataThread->initialize(DataMng::instance()->getDomainId(),1); m_brushDataThread->initialize(DataMng::instance()->getDomainId(),1);
m_updateTreeTimer = new QTimer; m_updateTreeTimer = new QTimer;
m_updateTreeTimer->setInterval(1000); m_updateTreeTimer->setInterval(1000);
m_startOrStopButtonTimer = new QTimer;
m_startOrStopButtonTimer->setInterval(1000);
m_checkObj = new OnTimeCheckThread(nullptr); m_checkObj = new OnTimeCheckThread(nullptr);
m_checkThread = new QThread(); m_checkThread = new QThread();
m_checkObj->moveToThread(m_checkThread); m_checkObj->moveToThread(m_checkThread);
@ -339,7 +354,7 @@ void MainWindow::initVariables()
m_pProcess=new QProcess(this); m_pProcess=new QProcess(this);
{ {
const std::string strProc = std::move( iot_public::CFileUtil::getPathOfBinFile( const std::string strProc = std::move( iot_public::CFileUtil::getPathOfBinFile(
std::string("sys_ctrl") + iot_public::CFileUtil::getProcSuffix())); std::string("sys_ctrl") + iot_public::CFileUtil::getProcSuffix()));
if(strProc.empty()) if(strProc.empty())
LOGERROR("未找到可执行文件sys_ctrl"); LOGERROR("未找到可执行文件sys_ctrl");
else else
@ -373,16 +388,18 @@ void MainWindow::initVariables()
void MainWindow::initUi() void MainWindow::initUi()
{ {
setWindowFlags( Qt::Window | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint| Qt::WindowCloseButtonHint ); setWindowFlags( Qt::Window | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint| Qt::WindowCloseButtonHint );
ui->label->setStyleSheet("");
//标题栏 //标题栏
if(m_bIsZh) if(m_bIsZh)
{ {
setWindowTitle(DataMng::instance()->getZhTitle()); //setWindowTitle(DataMng::instance()->getZhTitle());
m_pSysTrayIcon->setToolTip(DataMng::instance()->getZhTitle()); setWindowTitle("运行管理器");
m_pSysTrayIcon->setToolTip("运行管理器");
}else }else
{ {
setWindowTitle(DataMng::instance()->getEnTitle()); //setWindowTitle(DataMng::instance()->getEnTitle());
m_pSysTrayIcon->setToolTip(DataMng::instance()->getEnTitle()); setWindowTitle("Run Manager");
m_pSysTrayIcon->setToolTip("Run Manager");
} }
//进度条 //进度条
@ -405,47 +422,33 @@ void MainWindow::initUi()
//首页快捷按钮 //首页快捷按钮
ButtonForm *page1form = new ButtonForm(EN_SYS_STARTUP_PAGE1,m_bIsZh,this); ButtonForm *page1form = new ButtonForm(EN_SYS_STARTUP_PAGE1,m_bIsZh,this);
page1form->setTitleHide(true); //page1form->setTitleHide(true);
QVector<QString> buttons = DataMng::instance()->getPage1ButtonInfo(); QVector<QString> buttons = DataMng::instance()->getPage1ButtonInfo();
page1form->addToolButtons(buttons); page1form->addToolButtons(buttons);
connect(page1form,&ButtonForm::sigLogText,m_pStatusMng,&StatusForm::slotLogText); connect(page1form,&ButtonForm::sigLogText,m_pStatusMng,&StatusForm::slotLogText);
connect(page1form,&ButtonForm::sigButtonClick,this,&MainWindow::slotStartOrStop);
connect(this,&MainWindow::sigButtonStatus,page1form,&ButtonForm::sigEnableStatus);
QGridLayout *page1layout = new QGridLayout(ui->customWidget); QGridLayout *page1layout = new QGridLayout(ui->customWidget);
page1layout->setSpacing(0); page1layout->setSpacing(0);
page1layout->setContentsMargins(0,0,0,0); page1layout->setContentsMargins(0,0,0,0);
page1layout->addWidget(page1form); page1layout->addWidget(page1form);
//工具箱按钮
QMap<int,SButtonGroup> buttonGroupMap = DataMng::instance()->getPage3ButtonInfo();
QMap<int,SButtonGroup>::iterator it = buttonGroupMap.begin();
QVBoxLayout *page3layout = new QVBoxLayout(ui->boxWidget);
page3layout->setSpacing(20);
while (it != buttonGroupMap.end()) {
ButtonForm *page3form = new ButtonForm(EN_SYS_STARTUP_PAGE3,m_bIsZh,this);
page3form->setTitleText(m_bIsZh ? it.value().m_zh:it.value().m_en);
page3form->addToolButtons(it.value().m_buttonVec);
connect(page3form,&ButtonForm::sigLogText,m_pStatusMng,&StatusForm::slotLogText);
page3layout->addWidget(page3form);
it++;
}
page3layout->addStretch();
//状态栏视图 //状态栏视图
QGridLayout *statusLayout = new QGridLayout(ui->status_mng); QGridLayout *statusLayout = new QGridLayout(ui->status_mng);
statusLayout->setSpacing(6); statusLayout->setSpacing(6);
statusLayout->setContentsMargins(0, 0, 0, 0); statusLayout->setContentsMargins(0, 0, 0, 0);
statusLayout->addWidget(m_pStatusMng); statusLayout->addWidget(m_pStatusMng);
m_pStatusMng->setStyleSheet("background-color: #eaf9ea;");
//版本 ui->label->setPixmap(QPixmap(":/images/hmlogo.png"));
QGridLayout *versionLayout = new QGridLayout(ui->verWidget);
versionLayout->setSpacing(6);
versionLayout->setContentsMargins(0, 0, 0, 0);
versionLayout->addWidget(m_pVersionMng);
} }
void MainWindow::initConn() void MainWindow::initConn()
{ {
connect(m_updateTreeTimer,&QTimer::timeout,m_pAppMng,&AppMngForm::updateAppTree); connect(m_updateTreeTimer,&QTimer::timeout,m_pAppMng,&AppMngForm::updateAppTree);
// connect(m_updateTreeTimer,&QTimer::timeout,m_pProcMng,&ProcMngForm::updateProcTree); connect(m_startOrStopButtonTimer,&QTimer::timeout,this,&MainWindow::slotUpdataStartOrStopStatus);
connect(m_updateSysTimer,&QTimer::timeout,m_checkObj,&OnTimeCheckThread::brush,Qt::QueuedConnection); connect(m_updateSysTimer,&QTimer::timeout,m_checkObj,&OnTimeCheckThread::brush,Qt::QueuedConnection);
connect(m_checkObj,&OnTimeCheckThread::changeTab,m_pStartUp,&StartUpForm::changeIndex,Qt::QueuedConnection); connect(m_checkObj,&OnTimeCheckThread::changeTab,m_pStartUp,&StartUpForm::changeIndex,Qt::QueuedConnection);
@ -455,7 +458,7 @@ void MainWindow::initConn()
connect(m_pStartUp,&StartUpForm::sigStartSystem,this,&MainWindow::slotStartSystem); connect(m_pStartUp,&StartUpForm::sigStartSystem,this,&MainWindow::slotStartSystem);
connect(m_pStartUp,&StartUpForm::sigStopSystem,this,&MainWindow::slotStopSystem); connect(m_pStartUp,&StartUpForm::sigStopSystem,this,&MainWindow::slotStopSystem);
connect(this,&MainWindow::sigStartFormCanClickButton,m_pStartUp,&StartUpForm::slotStartFormCanClickButton);
connect(m_pProcess,SIGNAL(readyReadStandardOutput()),this,SLOT(outPut())); connect(m_pProcess,SIGNAL(readyReadStandardOutput()),this,SLOT(outPut()));
connect(m_pProcess,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(finish(int,QProcess::ExitStatus))); connect(m_pProcess,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(finish(int,QProcess::ExitStatus)));
@ -559,7 +562,7 @@ void MainWindow::slotStopSystem()
m_pProcess->start(m_strSysCtrlPath + " -s"); m_pProcess->start(m_strSysCtrlPath + " -s");
//更新状态 //更新状态
QString text = tr("开始停止系统"); QString text = tr("系统正在停止...");
m_pStatusMng->slotLogText(text); m_pStatusMng->slotLogText(text);
m_stopSysTimer->start(); //启动停止定时器 m_stopSysTimer->start(); //启动停止定时器
m_pProcess->waitForStarted(); m_pProcess->waitForStarted();
@ -1029,7 +1032,7 @@ void MainWindow::startSystem(int res,QProcess::ExitStatus exit)
if(result == QMessageBox::Yes) if(result == QMessageBox::Yes)
{ {
const std::string strProc = std::move( iot_public::CFileUtil::getPathOfBinFile( const std::string strProc = std::move( iot_public::CFileUtil::getPathOfBinFile(
std::string("model_system_config") + iot_public::CFileUtil::getProcSuffix())); std::string("model_system_config") + iot_public::CFileUtil::getProcSuffix()));
if(strProc.empty()) if(strProc.empty())
{ {
LOGERROR("未找到可执行文件model_system_config"); LOGERROR("未找到可执行文件model_system_config");
@ -1051,6 +1054,9 @@ void MainWindow::startSystem(int res,QProcess::ExitStatus exit)
//7.启动系统 //7.启动系统
DataMng::instance()->setAllowedStatus(false); DataMng::instance()->setAllowedStatus(false);
//更新状态
QString text = tr("系统正在启动...");
m_pStatusMng->slotLogText(text);
m_pProcess->start(m_strSysCtrlPath); m_pProcess->start(m_strSysCtrlPath);
m_startSysTimer->start(); m_startSysTimer->start();
m_pProcess->waitForStarted(); m_pProcess->waitForStarted();
@ -1075,6 +1081,17 @@ void MainWindow::tabWidget_currentIdxChanged(int /*index*/)
} }
} }
void MainWindow::slotStartOrStop()
{
emit sigStartFormCanClickButton();
}
void MainWindow::slotUpdataStartOrStopStatus()
{
bool enable =DataMng::instance()->getAllowedStatus();
emit sigButtonStatus(enable);
}
void MainWindow::closeEvent(QCloseEvent *event) void MainWindow::closeEvent(QCloseEvent *event)
{ {
#ifdef KBD_ARM #ifdef KBD_ARM
@ -1167,16 +1184,16 @@ bool MainWindow::checkNet()
{ {
QNetworkConfigurationManager manager; QNetworkConfigurationManager manager;
#ifdef OS_LINUX #ifdef OS_LINUX
QList<QNetworkConfiguration> activeConfigs = manager.allConfigurations(QNetworkConfiguration::Active); QList<QNetworkConfiguration> activeConfigs = manager.allConfigurations(QNetworkConfiguration::Active);
bool hasNonLocal = false; bool hasNonLocal = false;
for (int i = 0; i < activeConfigs.size(); i++) for (int i = 0; i < activeConfigs.size(); i++)
{ {
if (!activeConfigs[i].identifier().contains("/org/freedesktop/NetworkManager/Settings/")) if (!activeConfigs[i].identifier().contains("/org/freedesktop/NetworkManager/Settings/"))
{ {
hasNonLocal = true; hasNonLocal = true;
} }
} }
#endif #endif
if(manager.isOnline() if(manager.isOnline()
@ -1185,12 +1202,10 @@ bool MainWindow::checkNet()
#endif #endif
) )
{ {
m_pStatusMng->netIsOnline();
return true; return true;
} }
else else
{ {
m_pStatusMng->netIsNotOnline();
return false; return false;
} }
} }
@ -1200,12 +1215,10 @@ void MainWindow::checkDog()
if(!m_ptrDogAuthApi) if(!m_ptrDogAuthApi)
{ {
LOGERROR("创建加密狗实例失败"); LOGERROR("创建加密狗实例失败");
m_pStatusMng->dogUncheck();
return ; return ;
} }
if(iotSuccess != m_ptrDogAuthApi->checkAuthStatus()) if(iotSuccess != m_ptrDogAuthApi->checkAuthStatus())
{ {
m_pStatusMng->dogIsNotHave();
if(m_bLastDogStatus == true) if(m_bLastDogStatus == true)
{ {
m_bLastDogStatus = false; m_bLastDogStatus = false;
@ -1226,7 +1239,6 @@ void MainWindow::checkDog()
delete m_pDogMessBox; delete m_pDogMessBox;
} }
m_pDogMessBox = Q_NULLPTR; m_pDogMessBox = Q_NULLPTR;
m_pStatusMng->dogIsHave();
} }
} }

View File

@ -7,7 +7,8 @@
#include <boost/make_shared.hpp> #include <boost/make_shared.hpp>
#include <QMessageBox> #include <QMessageBox>
#include <QSystemTrayIcon> #include <QSystemTrayIcon>
#include <QLabel>
#include <QStatusBar>
#include "BrushDataThread.h" #include "BrushDataThread.h"
#include "rdb_net_api/CRdbNetApi.h" #include "rdb_net_api/CRdbNetApi.h"
#include "net_msg_bus_api/MsgBusApi.h" #include "net_msg_bus_api/MsgBusApi.h"
@ -15,12 +16,14 @@
#include "pub_utility_api/ProcUtil.h" #include "pub_utility_api/ProcUtil.h"
#include "sys_dog_auth_api/DogAuthInterface.h" #include "sys_dog_auth_api/DogAuthInterface.h"
#include <QPushButton>
class QLocalServer; class QLocalServer;
class StartUpForm; class StartUpForm;
class AppMngForm; class AppMngForm;
class ProcMngForm; class ProcMngForm;
class StatusForm; class StatusForm;
class VersionForm; class VersionForm;
class QStatusBar;
namespace Ui { namespace Ui {
class MainWindow; class MainWindow;
@ -45,7 +48,6 @@ public:
void stopWork(); void stopWork();
void startAutoStartHmiTimer(); void startAutoStartHmiTimer();
private: private:
void initSheet(); void initSheet();
void initVariables(); void initVariables();
@ -78,6 +80,10 @@ signals:
void sigNetIsOnline(); void sigNetIsOnline();
void sigStartFormCanClickButton();
void sigButtonStatus(bool enabled);
public slots: public slots:
void slotStartSystem(); void slotStartSystem();
@ -114,6 +120,9 @@ public slots:
void tabWidget_currentIdxChanged(int index); void tabWidget_currentIdxChanged(int index);
void slotStartOrStop();
void slotUpdataStartOrStopStatus();
protected: protected:
virtual void closeEvent(QCloseEvent *event); virtual void closeEvent(QCloseEvent *event);
virtual void changeEvent(QEvent* e); virtual void changeEvent(QEvent* e);
@ -156,6 +165,7 @@ private:
//定时器 //定时器
QTimer *m_updateTreeTimer; //< 刷新应用和进程定时器 QTimer *m_updateTreeTimer; //< 刷新应用和进程定时器
QTimer *m_updateSysTimer; //< 刷新系统状态定时器 QTimer *m_updateSysTimer; //< 刷新系统状态定时器
QTimer *m_startOrStopButtonTimer; //< 刷新启动停止按钮定时器
QTimer *m_startSysTimer; //< 系统启动定时器 QTimer *m_startSysTimer; //< 系统启动定时器
QTimer *m_stopSysTimer; //< 系统启动定时器 QTimer *m_stopSysTimer; //< 系统启动定时器
QTimer *m_appRestartTimer; //< 应用重启定时器 QTimer *m_appRestartTimer; //< 应用重启定时器

View File

@ -26,6 +26,7 @@ bool OnTimeCheckThread::isSystemRunning()
void OnTimeCheckThread::brush() void OnTimeCheckThread::brush()
{ {
if(isSystemRunning()) if(isSystemRunning())
{ {
DataMng::instance()->setSysStatus(true); DataMng::instance()->setSysStatus(true);

View File

@ -6,7 +6,7 @@
#include "pub_utility_api/TimeUtil.h" #include "pub_utility_api/TimeUtil.h"
#include <QMenu> #include <QMenu>
#include "SheetStyle.h"
using namespace iot_public; using namespace iot_public;
ProcMngForm::ProcMngForm(QWidget *parent) : ProcMngForm::ProcMngForm(QWidget *parent) :
@ -14,9 +14,19 @@ ProcMngForm::ProcMngForm(QWidget *parent) :
ui(new Ui::ProcMngForm) ui(new Ui::ProcMngForm)
{ {
ui->setupUi(this); ui->setupUi(this);
SheetStyle sheetStyle;
QString sheet;
if(sheetStyle.getSheet(sheet))
{
setStyleSheet(sheet);
}else
{
LOGERROR("MainWindow::initSheet():获取样式文件失败!");
}
m_ntime = (uint64)iot_public::getUTCTimeSec(); m_ntime = (uint64)iot_public::getUTCTimeSec();
ui->procTreeWidget->setContextMenuPolicy(Qt::CustomContextMenu); ui->procTreeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
initProcTree(); initProcTree();
connect(ui->procTreeWidget,&QTreeWidget::customContextMenuRequested,this,&ProcMngForm::customContext); connect(ui->procTreeWidget,&QTreeWidget::customContextMenuRequested,this,&ProcMngForm::customContext);
connect(ui->procTreeWidget,&QTreeWidget::itemClicked,this,&ProcMngForm::procItemClicked); connect(ui->procTreeWidget,&QTreeWidget::itemClicked,this,&ProcMngForm::procItemClicked);
} }
@ -107,7 +117,7 @@ void ProcMngForm::customContext(const QPoint &pos)
emit sigStartProc(curAppId,item->text(1)); emit sigStartProc(curAppId,item->text(1));
}); });
connect(procStop, &QAction::triggered, [=](){ connect(procStop, &QAction::triggered, [=](){
CLoginDlg dlg; CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT"; QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm); dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证")); dlg.setOkButtonText(tr("验证"));
@ -119,7 +129,7 @@ void ProcMngForm::customContext(const QPoint &pos)
} }
}); });
connect(procRestart, &QAction::triggered, [=](){ connect(procRestart, &QAction::triggered, [=](){
CLoginDlg dlg; CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT"; QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm); dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证")); dlg.setOkButtonText(tr("验证"));
@ -131,7 +141,7 @@ void ProcMngForm::customContext(const QPoint &pos)
} }
}); });
connect(procForceStop, &QAction::triggered, [=](){ connect(procForceStop, &QAction::triggered, [=](){
CLoginDlg dlg; CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT"; QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm); dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证")); dlg.setOkButtonText(tr("验证"));
@ -220,7 +230,7 @@ void ProcMngForm::procItemClicked(QTreeWidgetItem *item, int column)
{ {
return ; return ;
} }
CLoginDlg dlg; CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT"; QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm); dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证")); dlg.setOkButtonText(tr("验证"));

View File

@ -6,13 +6,48 @@
SheetStyle::SheetStyle(): SheetStyle::SheetStyle():
m_stSheet("") m_stSheet("")
{ {
std::string strFullPath = iot_public::CFileStyle::getPathOfStyleFile("sys_startup.qss") ; // QString qss = QString();
QFile qssfile(QString::fromStdString(strFullPath)) ; // std::string strFullPath = iot_public::CFileStyle::getPathOfStyleFile("public.qss","zh","light");
qssfile.open(QFile::ReadOnly);
if (qssfile.isOpen()) // QFile qssfile1(QString::fromStdString(strFullPath));
// qssfile1.open(QFile::ReadOnly);
// if (qssfile1.isOpen())
// {
// qss += QLatin1String(qssfile1.readAll());
// qssfile1.close();
// }
// strFullPath = iot_public::CFileStyle::getPathOfStyleFile("sys_startup.qss","zh","light") ;
// QFile qssfile(QString::fromStdString(strFullPath)) ;
// qssfile.open(QFile::ReadOnly);
// if (qssfile.isOpen())
// {
// m_stSheet = QLatin1String(qssfile.readAll());
// qssfile.close();
// }
QString qss = QString();
std::string strFullPath = iot_public::CFileStyle::getPathOfStyleFile("public.qss","zh","light");
QFile qssfile1(QString::fromStdString(strFullPath));
qssfile1.open(QFile::ReadOnly);
if (qssfile1.isOpen())
{ {
m_stSheet = QLatin1String(qssfile.readAll()); qss += QLatin1String(qssfile1.readAll());
qssfile.close(); qssfile1.close();
}
strFullPath = iot_public::CFileStyle::getPathOfStyleFile("sys_startup.qss","zh","light");
QFile qssfile2(QString::fromStdString(strFullPath));
qssfile2.open(QFile::ReadOnly);
if (qssfile2.isOpen())
{
qss += QLatin1String(qssfile2.readAll());
qssfile2.close();
}
if (!qss.isEmpty())
{
m_stSheet = qss;
} }
} }

View File

@ -16,7 +16,7 @@ StartUpForm::StartUpForm(QWidget *parent) :
ui->setupUi(this); ui->setupUi(this);
initVariables(); initVariables();
initView(); initView();
initConn(); //initConn();
} }
StartUpForm::~StartUpForm() StartUpForm::~StartUpForm()
@ -84,7 +84,7 @@ void StartUpForm::stopSystem()
{ {
return ; return ;
} }
CLoginDlg dlg; CLoginDlg dlg(this);
QString perm ="FUNC_NOM_SYSTEM_EXIT"; QString perm ="FUNC_NOM_SYSTEM_EXIT";
dlg.setCheckPerm(perm); dlg.setCheckPerm(perm);
dlg.setOkButtonText(tr("验证")); dlg.setOkButtonText(tr("验证"));
@ -96,6 +96,15 @@ void StartUpForm::stopSystem()
} }
} }
void StartUpForm::slotStartFormCanClickButton()
{
int index =ui->stackedWidget->currentIndex();
if(index==0)
startSystem();
else if(index == 2)
stopSystem();
}
void StartUpForm::initVariables() void StartUpForm::initVariables()
{ {

View File

@ -45,6 +45,8 @@ public slots:
void stopSystem(); void stopSystem();
void slotStartFormCanClickButton();
private: private:

View File

@ -6,6 +6,37 @@ StatusForm::StatusForm(QWidget *parent) :
ui(new Ui::StatusForm) ui(new Ui::StatusForm)
{ {
ui->setupUi(this); ui->setupUi(this);
ui->pushButton->setStyleSheet(R"(
QPushButton {
background-color: #eaf9ea;
color: #333333;
border: none;
padding: 10px 20px;
font-size: 16px;
/* 只设置右下角圆角 */
border-top-right-radius: 0px;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 5px;
}
/* 悬停状态 */
QPushButton:hover {
background-color: #ff0000;
color: white;
}
/* 按下状态 */
QPushButton:pressed {
background-color: #cc0000;
padding-top: 12px; /* 模拟按下效果 */
padding-bottom: 8px;
}
)");
connect(ui->pushButton,&QPushButton::clicked,this,&StatusForm::hideUi);
hideUi();
} }
StatusForm::~StatusForm() StatusForm::~StatusForm()
@ -15,35 +46,13 @@ StatusForm::~StatusForm()
void StatusForm::slotLogText(const QString &logText) void StatusForm::slotLogText(const QString &logText)
{ {
ui->statusText->setText(logText); ui->statusText->setText(" "+logText);
ui->statusText->show();
ui->pushButton->show();
} }
void StatusForm::netIsNotOnline() void StatusForm::hideUi()
{ {
ui->netText->setStyleSheet("QLabel{color:red}"); ui->statusText->hide();
ui->netText->setText(tr("异常")); ui->pushButton->hide();
}
void StatusForm::netIsOnline()
{
ui->netText->setStyleSheet("QLabel{color:green}");
ui->netText->setText(tr("正常"));
}
void StatusForm::dogUncheck()
{
ui->dogText->setStyleSheet("QLabel{color:red}");
ui->dogText->setText(tr("未检测"));
}
void StatusForm::dogIsNotHave()
{
ui->dogText->setStyleSheet("QLabel{color:red}");
ui->dogText->setText(tr("异常"));
}
void StatusForm::dogIsHave()
{
ui->dogText->setStyleSheet("QLabel{color:green}");
ui->dogText->setText(tr("正常"));
} }

View File

@ -18,18 +18,7 @@ public:
public slots: public slots:
void slotLogText(const QString & logText); void slotLogText(const QString & logText);
void hideUi();
public:
void netIsNotOnline();
void netIsOnline();
void dogUncheck();
void dogIsNotHave();
void dogIsHave();
private: private:
Ui::StatusForm *ui; Ui::StatusForm *ui;
}; };

View File

@ -6,10 +6,22 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>550</width> <width>677</width>
<height>27</height> <height>30</height>
</rect> </rect>
</property> </property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>40</height>
</size>
</property>
<property name="windowTitle"> <property name="windowTitle">
<string>Form</string> <string>Form</string>
</property> </property>
@ -26,75 +38,49 @@
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0"> <item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout"> <widget class="QSplitter" name="splitter">
<item> <property name="orientation">
<widget class="QLabel" name="statusText"> <enum>Qt::Horizontal</enum>
<property name="minimumSize"> </property>
<size> <widget class="QLabel" name="statusText">
<width>50</width> <property name="minimumSize">
<height>0</height> <size>
</size> <width>200</width>
</property> <height>0</height>
<property name="text"> </size>
<string/> </property>
</property> <property name="text">
</widget> <string/>
</item> </property>
<item> </widget>
<spacer name="horizontalSpacer"> <widget class="QPushButton" name="pushButton">
<property name="orientation"> <property name="minimumSize">
<enum>Qt::Horizontal</enum> <size>
</property> <width>34</width>
<property name="sizeHint" stdset="0"> <height>30</height>
<size> </size>
<width>40</width> </property>
<height>20</height> <property name="maximumSize">
</size> <size>
</property> <width>34</width>
</spacer> <height>30</height>
</item> </size>
<item> </property>
<widget class="QLabel" name="label"> <property name="text">
<property name="text"> <string>✕</string>
<string>加密狗状态:</string> </property>
</property> <property name="iconSize">
</widget> <size>
</item> <width>40</width>
<item> <height>40</height>
<widget class="QLabel" name="dogText"> </size>
<property name="minimumSize"> </property>
<size> </widget>
<width>50</width> </widget>
<height>25</height>
</size>
</property>
<property name="text">
<string>正常</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>本地网络状态:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="netText">
<property name="minimumSize">
<size>
<width>50</width>
<height>25</height>
</size>
</property>
<property name="text">
<string>正常</string>
</property>
</widget>
</item>
</layout>
</item> </item>
</layout> </layout>
</widget> </widget>

View File

@ -6,10 +6,13 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>897</width> <width>945</width>
<height>471</height> <height>597</height>
</rect> </rect>
</property> </property>
<property name="windowTitle">
<string>运行管理器</string>
</property>
<widget class="QWidget" name="centralWidget"> <widget class="QWidget" name="centralWidget">
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<property name="leftMargin"> <property name="leftMargin">
@ -28,6 +31,84 @@
<number>0</number> <number>0</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="minimumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../tools/fbd_designer/fbd_plugins/alarmsplitplugin/icon.qrc">:/icon/alarmsplit.png</pixmap>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:20pt; color:#52a6ff;&quot;&gt;SPMS电力监控系统&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QWidget" name="status_mng" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>30</height>
</size>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QTabWidget" name="tabWidget"> <widget class="QTabWidget" name="tabWidget">
<property name="currentIndex"> <property name="currentIndex">
<number>0</number> <number>0</number>
@ -69,7 +150,7 @@
</property> </property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>300</width> <width>0</width>
<height>16777215</height> <height>16777215</height>
</size> </size>
</property> </property>
@ -111,72 +192,14 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="workbox_mng">
<attribute name="title">
<string>工具箱</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="horizontalSpacing">
<number>0</number>
</property>
<property name="verticalSpacing">
<number>20</number>
</property>
<item row="0" column="0">
<widget class="QWidget" name="boxWidget" native="true"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="version_mng">
<attribute name="title">
<string>版本</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QWidget" name="verWidget" native="true"/>
</item>
</layout>
</widget>
</widget>
</item>
<item row="1" column="0">
<widget class="QWidget" name="status_mng" native="true">
<property name="minimumSize">
<size>
<width>0</width>
<height>40</height>
</size>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
</widget> </widget>
<layoutdefault spacing="6" margin="11"/> <layoutdefault spacing="6" margin="11"/>
<resources/> <resources>
<include location="../../tools/fbd_designer/fbd_plugins/alarmsplitplugin/icon.qrc"/>
</resources>
<connections/> <connections/>
</ui> </ui>

View File

@ -26,5 +26,6 @@
<file>auto_start.ico</file> <file>auto_start.ico</file>
<file>db_check.ico</file> <file>db_check.ico</file>
<file>dog_auth_check.ico</file> <file>dog_auth_check.ico</file>
<file>images/hmlogo.png</file>
</qresource> </qresource>
</RCC> </RCC>

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@
QT += gui sql QT += gui sql
TARGET = kbd61850dbinterface TARGET = hmjs61850dbinterface
TEMPLATE = lib TEMPLATE = lib
exists($$PWD/../../common.pri) { exists($$PWD/../../common.pri) {