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

99 lines
3.1 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), _lLinkIp(""), _adHocNetwork(""),
_satelliteComm("") {
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::Window); // 设置为独立窗口
m_deviceStateDlg = new deviceStateDlg(this); // 状态嵌入窗口
m_deviceStateDlg->show();
initSettingUrl();
initButton();
}
HomePageDlg::~HomePageDlg() { delete ui; }
/*************************************************
* @func getUrl
* @brief 获取设备url
* @param
**************************************************/
void HomePageDlg::getUrl(std::unordered_map<QString, QString> &urlMap) {
urlMap = _urlMap;
}
/*************************************************
* @func
* @brief 初始化配置文件
* @param
* @return
**************************************************/
void HomePageDlg::initSettingUrl() {
QString urlFile = QCoreApplication::applicationDirPath() + "/config.ini";
std::unique_ptr<QSettings> configIni =
std::make_unique<QSettings>(urlFile, QSettings::IniFormat);
_lLinkIp = configIni->value("L链/IP").toString();
_adHocNetwork = configIni->value("宽带自组网/IP").toString();
_satelliteComm = configIni->value("机载卫通/IP").toString();
_urlMap.insert({"L链", _lLinkIp});
_urlMap.insert({"宽带自组网", _adHocNetwork});
_urlMap.insert({"机载卫通", _satelliteComm});
settingWidget->setUrl(_urlMap);
}
/**
* @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::sendOnlyUrl, this,
[&](unsigned char urlIndex, QString url) {
m_deviceStateDlg->setDeviceIP(urlIndex, url);
});
}
void HomePageDlg::on_pushButton_clicked() { emit sendUrl(_urlMap); }
// 区域重绘
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()));
}