变电站机器人监控系统界面(附源码)

本次将变电站机器人监控系统的外框架界面分离出来供大家观赏!

RobotHmi::RobotHmi(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);

	Init();
	InitUi();
	InitSlot();

	SlotHome();
}

RobotHmi::~RobotHmi()
{

}

void RobotHmi::Init()
{
	//setWindowFlags(Qt::FramelessWindowHint);
	setMinimumSize(1000, 600);

	m_pFun1 = new CFun1(this);
	m_pFun2 = new CFun2(this);
	m_pFun3 = new CFun3(this);
	m_pFun4 = new CFun4(this);
	m_pFun5 = new CFun5(this);
	m_pFun6 = new CFun6(this);
	m_pFun7 = new CFun7(this);
	m_pFun8 = new CFun8(this);
	m_pTopLeft = new CTopLeft(this);
	m_pTopRight = new CTopRight(this);
	m_pCenter = new CCenter(this);
	m_pNav1st = new CNav1st(this);
}

void RobotHmi::InitUi()
{
	m_hBoxLyout = new QHBoxLayout;
	m_hBoxLyout->addWidget(m_pTopLeft);
	m_hBoxLyout->addWidget(m_pTopRight);
	m_hBoxLyout->setContentsMargins(0,0,0,0);
	m_hBoxLyout->setSpacing(0);

	m_vBoxLyout = new QVBoxLayout;
	m_vBoxLyout->addLayout(m_hBoxLyout);
	m_vBoxLyout->addWidget(m_pCenter);
	m_vBoxLyout->setContentsMargins(0,0,0,0);
	m_vBoxLyout->setSpacing(0);

	setLayout(m_vBoxLyout);
	this->show();
}

void RobotHmi::InitSlot()
{
	connect(m_pTopLeft, SIGNAL(SigHome()), this, SLOT(SlotHome()));
	connect(m_pTopLeft, SIGNAL(SigHelp()), this, SLOT(SlotHelp()));
	connect(m_pTopLeft, SIGNAL(SigQuit()), this, SLOT(SlotQuit()));
	connect(m_pTopLeft, SIGNAL(SigNavigation()), this, SLOT(SlotNavigation()));
	connect(m_pNav1st, SIGNAL(SigFun1()), this, SLOT(SlotFun1()));
	connect(m_pNav1st, SIGNAL(SigFun2()), this, SLOT(SlotFun2()));
	connect(m_pNav1st, SIGNAL(SigFun3()), this, SLOT(SlotFun3()));
	connect(m_pNav1st, SIGNAL(SigFun4()), this, SLOT(SlotFun4()));
	connect(m_pNav1st, SIGNAL(SigFun5()), this, SLOT(SlotFun5()));
	connect(m_pNav1st, SIGNAL(SigFun6()), this, SLOT(SlotFun6()));
	connect(m_pNav1st, SIGNAL(SigFun7()), this, SLOT(SlotFun7()));
	connect(m_pNav1st, SIGNAL(SigFun8()), this, SLOT(SlotFun8()));
}

void RobotHmi::resizeEvent(QResizeEvent *e)
{
	SlotAllFunHide();
}

void RobotHmi::moveEvent(QMoveEvent *e)
{
	SlotAllFunHide();
}

void RobotHmi::SlotHome()
{
	ZTest *w = NULL;
	if (!WidgetIsExist(QString::fromLocal8Bit("变电站智能机器人巡检")))
	{
		w = new ZTest();
		w->SetLabelText("变电站智能机器人巡检");
	}

	SlotAllFunHide();
	AddFunWidget(QString::fromLocal8Bit("变电站智能机器人巡检"), QString::fromLocal8Bit("变电站智能机器人巡检"), w);
	SetLabelNavigation(QString::fromLocal8Bit("变电站智能机器人巡检"));
}

void RobotHmi::SlotHelp()
{
	ZTest *w = NULL;
	if (!WidgetIsExist(QString::fromLocal8Bit("帮助")))
	{
		w = new ZTest();
		w->SetLabelText("帮助");
	}

	SlotAllFunHide();
	AddFunWidget(QString::fromLocal8Bit("帮助"), QString::fromLocal8Bit("帮助"), w);
	SetLabelNavigation(QString::fromLocal8Bit("帮助"));
}

void RobotHmi::SlotQuit()
{
	SlotAllFunHide();
	int ret = QMessageBox::question(this, QString::fromLocal8Bit("询问"), QString::fromLocal8Bit("您确认退出?"), QString::fromLocal8Bit("退出"), QString::fromLocal8Bit("放弃"));
	if (!ret)
		close();
}

void RobotHmi::SlotNavigation()
{
	QPoint p = m_pTopLeft->GetNavigationPos();
	p = mapToGlobal(p);
	p.setY(p.y() + 37);
	m_pNav1st->move(p);
	if (m_pNav1st->isHidden())
		m_pNav1st->show();
	else
		SlotAllFunHide();

	update();
}

void RobotHmi::SlotFun1()
{
	QPoint p = m_pNav1st->GetFun1Pos();
	p.setX(p.x() + 245);
	p.setY(p.y() + 22);
	m_pFun1->move(p);
	if (m_pFun1->isHidden())
	{
		m_pFun1->show();
		m_pFun2->hide();
		m_pFun3->hide();
		m_pFun4->hide();
		m_pFun5->hide();
		m_pFun6->hide();
		m_pFun7->hide();
		m_pFun8->hide();
	}
	else
		m_pFun1->hide();

	update();
}

void RobotHmi::SlotFun2()
{
	QPoint p = m_pNav1st->GetFun2Pos();
	p.setX(p.x() + 245);
	p.setY(p.y() + 22);
	m_pFun2->move(p);
	if (m_pFun2->isHidden())
	{
		m_pFun1->hide();
		m_pFun2->show();
		m_pFun3->hide();
		m_pFun4->hide();
		m_pFun5->hide();
		m_pFun6->hide();
		m_pFun7->hide();
		m_pFun8->hide();
	}
	else
		m_pFun2->hide();

	update();
}

void RobotHmi::SlotFun3()
{
	QPoint p = m_pNav1st->GetFun3Pos();
	p.setX(p.x() + 245);
	p.setY(p.y() + 22);
	m_pFun3->move(p);
	if (m_pFun3->isHidden())
	{
		m_pFun1->hide();
		m_pFun2->hide();
		m_pFun3->show();
		m_pFun4->hide();
		m_pFun5->hide();
		m_pFun6->hide();
		m_pFun7->hide();
		m_pFun8->hide();
	}
	else
		m_pFun3->hide();

	update();
}

void RobotHmi::SlotFun4()
{
	QPoint p = m_pNav1st->GetFun4Pos();
	p.setX(p.x() + 245);
	p.setY(p.y() + 22);
	m_pFun4->move(p);
	if (m_pFun4->isHidden())
	{
		m_pFun1->hide();
		m_pFun2->hide();
		m_pFun3->hide();
		m_pFun4->show();
		m_pFun5->hide();
		m_pFun6->hide();
		m_pFun7->hide();
		m_pFun8->hide();
	}
	else
		m_pFun4->hide();

	update();
}

void RobotHmi::SlotFun5()
{
	QPoint p = m_pNav1st->GetFun5Pos();
	p.setX(p.x() + 245);
	p.setY(p.y() + 22);
	m_pFun5->move(p);
	if (m_pFun5->isHidden())
	{
		m_pFun1->hide();
		m_pFun2->hide();
		m_pFun3->hide();
		m_pFun4->hide();
		m_pFun5->show();
		m_pFun6->hide();
		m_pFun7->hide();
		m_pFun8->hide();
	}
	else
		m_pFun5->hide();

	update();
}

void RobotHmi::SlotFun6()
{
	QPoint p = m_pNav1st->GetFun6Pos();
	p.setX(p.x() + 245);
	p.setY(p.y() + 22);
	m_pFun6->move(p);
	if (m_pFun6->isHidden())
	{
		m_pFun1->hide();
		m_pFun2->hide();
		m_pFun3->hide();
		m_pFun4->hide();
		m_pFun5->hide();
		m_pFun6->show();
		m_pFun7->hide();
		m_pFun8->hide();
	}
	else
		m_pFun6->hide();

	update();
}

void RobotHmi::SlotFun7()
{
	QPoint p = m_pNav1st->GetFun7Pos();
	p.setX(p.x() + 245);
	p.setY(p.y() + 22);
	m_pFun7->move(p);
	if (m_pFun7->isHidden())
	{
		m_pFun1->hide();
		m_pFun2->hide();
		m_pFun3->hide();
		m_pFun4->hide();
		m_pFun5->hide();
		m_pFun6->hide();
		m_pFun7->show();
		m_pFun8->hide();
	}
	else
		m_pFun7->hide();

	update();
}

void RobotHmi::SlotFun8()
{
	QPoint p = m_pNav1st->GetFun8Pos();
	p.setX(p.x() + 245);
	p.setY(p.y() + 22);
	m_pFun8->move(p);
	if (m_pFun8->isHidden())
	{
		m_pFun1->hide();
		m_pFun2->hide();
		m_pFun3->hide();
		m_pFun4->hide();
		m_pFun5->hide();
		m_pFun6->hide();
		m_pFun7->hide();
		m_pFun8->show();
	}
	else
		m_pFun8->hide();

	update();
}

void RobotHmi::SlotFunHide()
{
	m_pFun1->hide();
	m_pFun2->hide();
	m_pFun3->hide();
	m_pFun4->hide();
	m_pFun5->hide();
	m_pFun6->hide();
	m_pFun7->hide();
	m_pFun8->hide();

	update();
}

void RobotHmi::SlotAllFunHide()
{
	m_pNav1st->hide();
	SlotFunHide();
}

源代码见:https://download.csdn.net/download/u013576331/10531050

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
本作品能够通过乐联网远程对用户(比如学生宿舍)的用电情况进行监控。 主要功能: 1、对用电功率和用电量进行监测,可以通过手机或电脑查看。 2、通过手机或电脑远程对电进行开关控制。 3、进一步可通过乐联网的设置实现定时开关电、超功率、超用电量自动断电等功能。 系统组成: 1、Arduino mega2560 R3 开发板 2、Arduino Ethernet W5100 网络扩展板 3、电子式电能表 4、固态继电器 5、小电路板 系统设计框图: 电路工作原理: 先简单说明一下我用的电子式电能表的原理:电能表由分压器完成电压取样,由取样电阻完成电流取样,取样后的电压、电流信号由乘法器转换为功率信号,经V/F变换后,输出的脉冲信号推动计数器工作,同时通过光电耦合器输出相同的脉冲,我就是使用这一脉冲进行检测的。我用的220V 5(20)A的电能表对应的参数为3200imp/kWh,即每用1kWh电量输出3200个脉冲,同时通过测量这个脉冲的周期就可以计算出用功率。因此用Aduino MEGA2560对脉冲计数并测量周期,就可以将功率和用电量的数据通过W5100网络扩展板传送到乐联网。用一只固态继电器串联在电能表和用电器之间,由Arduino mega2560控制固态继电器的开通与断开,这样就可以用手机或电脑通过远程控制电的开关。我在乐联网上设置用切换方式控制开关,手机装了乐联网App软件也就可以进行控制了,同时也能够通过手机查看功率和用电量数据。 系统的实物连接图: 物联设备:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值