|
|
#include "homepagedlg.h"
|
|
|
#include "ui_homepagedlg.h"
|
|
|
#include <QDir>
|
|
|
#include <QPushButton>
|
|
|
#include <qsettings.h>
|
|
|
|
|
|
HomePageDlg::HomePageDlg(QWidget *parent)
|
|
|
: QWidget(parent), ui(new Ui::HomePageDlg) {
|
|
|
ui->setupUi(this);
|
|
|
QPalette palette;
|
|
|
// 设置主窗口背景颜色
|
|
|
palette.setColor(QPalette::Window, QColor(50, 50, 50));
|
|
|
this->setPalette(palette);
|
|
|
// 嵌入到主窗口
|
|
|
setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
|
|
|
hide();
|
|
|
|
|
|
settingWidget = new HomePageSetingWidget(this);
|
|
|
settingWidget->setWindowFlags(Qt::Dialog);
|
|
|
settingWidget->setWindowModality(Qt::WindowModal);//设置为模态对话框
|
|
|
|
|
|
m_deviceStateDlg = new deviceStateDlg(this); // 状态嵌入窗口
|
|
|
m_deviceStateDlg->show();
|
|
|
std::unordered_map<QString, settingStruct> allParam =
|
|
|
settingWidget->getAllParam();
|
|
|
m_deviceStateDlg->setUrl(allParam);
|
|
|
|
|
|
initButton();
|
|
|
}
|
|
|
|
|
|
HomePageDlg::~HomePageDlg() { delete ui; }
|
|
|
|
|
|
/**
|
|
|
* @brief HomePageDlg::initButton 初始化按钮位置
|
|
|
*/
|
|
|
void HomePageDlg::initButton() {
|
|
|
QIcon icon;
|
|
|
icon.addFile(":/res/settings.png");
|
|
|
m_settingBtn = new QPushButton;
|
|
|
m_settingBtn->setParent(this);
|
|
|
m_settingBtn->setMinimumSize(40, 40);
|
|
|
m_settingBtn->setMaximumSize(40, 40);
|
|
|
m_settingBtn->setIconSize(QSize(30, 30));
|
|
|
m_settingBtn->setIcon(icon);
|
|
|
|
|
|
// 点击主页按钮弹出设置页面1
|
|
|
connect(m_settingBtn, &QPushButton::clicked, this, [&]() {
|
|
|
// qDebug() << "homepagedlg上的设置按钮点击了";
|
|
|
if (settingWidget->isVisible())
|
|
|
settingWidget->close();
|
|
|
else
|
|
|
settingWidget->show();
|
|
|
});
|
|
|
|
|
|
// 设置页面设置ip后,更新网络检测页面ip
|
|
|
connect(settingWidget, &HomePageSetingWidget::sendOneSet, this,
|
|
|
[&](unsigned char urlIndex, settingStruct url) {
|
|
|
m_deviceStateDlg->setDeviceIP(urlIndex, url);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// 区域重绘
|
|
|
void HomePageDlg::resizeEvent(QResizeEvent *event) {
|
|
|
double HomePageHeight = (double)(this->height());
|
|
|
double HomePageWidth = (double)(this->width());
|
|
|
// 设置按钮位置和大小
|
|
|
m_settingBtn->setGeometry(HomePageWidth - 40, 0, 40, 40);
|
|
|
m_deviceStateDlg->move(0.5 * (HomePageWidth - m_deviceStateDlg->width()),
|
|
|
0.5 * (HomePageHeight - m_deviceStateDlg->height()));
|
|
|
}
|