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

100 lines
3.2 KiB
C++

#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);
_GDDCIp = configIni->value("光电吊舱/IP").toString();
_lLinkIp = configIni->value("L链/IP").toString();
_adHocNetwork = configIni->value("宽带自组网/IP").toString();
_satelliteComm = configIni->value("机载卫通/IP").toString();
_urlMap.insert({"光电吊舱", _GDDCIp});
_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::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()));
}