#include "homepagedlg.h" #include "ui_homepagedlg.h" #include #include #include 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 &urlMap) { urlMap = _urlMap; } /************************************************* * @func * @brief 初始化配置文件 * @param * @return **************************************************/ void HomePageDlg::initSettingUrl() { QString urlFile = QCoreApplication::applicationDirPath() + "/config.ini"; std::unique_ptr configIni = std::make_unique(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())); }