#include "homepagedlg.h" #include "ui_homepagedlg.h" #include #include #include 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 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())); }