You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PayloadAPP/Src/HomePage/homepagedlg.cpp

73 lines
2.3 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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();
emit m_deviceStateDlg->stopMyThread(1);
});
// 设置页面设置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()));
}