[feat]主页新增设置按钮,可配置页面读取的url,实时更新并保存配置文件

pull/5/head
wanghaoyu 7 months ago
parent e446060c52
commit 4ca024b018

@ -1 +0,0 @@
<RCC/>

@ -17,13 +17,14 @@ SOURCES += \
Src/GDDC/gddcCmdDlg.cpp \ Src/GDDC/gddcCmdDlg.cpp \
Src/GDDC/gddcSet.cpp \ Src/GDDC/gddcSet.cpp \
Src/GDDC/gddcStateInfo.cpp \ Src/GDDC/gddcStateInfo.cpp \
Src/HomePage/homepagesetingwidget.cpp \
cffmpeg_decode.cpp \ cffmpeg_decode.cpp \
customwebenginepage.cpp \ customwebenginepage.cpp \
cwebengineview.cpp \ cwebengineview.cpp \
ffmpegvideodlg.cpp \ ffmpegvideodlg.cpp \
Src/GDDC/gddcdlg.cpp \ Src/GDDC/gddcdlg.cpp \
global.cpp \ global.cpp \
homepagedlg.cpp \ Src/HomePage/homepagedlg.cpp \
main.cpp \ main.cpp \
mainwindow.cpp \ mainwindow.cpp \
qweb.cpp \ qweb.cpp \
@ -36,13 +37,14 @@ HEADERS += \
Src/GDDC/gddcSet.h \ Src/GDDC/gddcSet.h \
Src/GDDC/gddcStateInfo.h \ Src/GDDC/gddcStateInfo.h \
Src/GDDC/structDefineMyslef.h \ Src/GDDC/structDefineMyslef.h \
Src/HomePage/homepagesetingwidget.h \
cffmpeg_decode.h \ cffmpeg_decode.h \
customwebenginepage.h \ customwebenginepage.h \
cwebengineview.h \ cwebengineview.h \
ffmpegvideodlg.h \ ffmpegvideodlg.h \
Src/GDDC/gddcdlg.h \ Src/GDDC/gddcdlg.h \
global.h \ global.h \
homepagedlg.h \ Src/HomePage/homepagedlg.h \
mainwindow.h \ mainwindow.h \
qweb.h \ qweb.h \
rescueload.h \ rescueload.h \
@ -52,9 +54,10 @@ FORMS += \
Src/GDDC/gddcCmdDlg.ui \ Src/GDDC/gddcCmdDlg.ui \
Src/GDDC/gddcSet.ui \ Src/GDDC/gddcSet.ui \
Src/GDDC/gddcStateInfo.ui \ Src/GDDC/gddcStateInfo.ui \
Src/HomePage/homepagesetingwidget.ui \
ffmpegvideodlg.ui \ ffmpegvideodlg.ui \
Src/GDDC/gddcdlg.ui \ Src/GDDC/gddcdlg.ui \
homepagedlg.ui \ Src/HomePage/homepagedlg.ui \
mainwindow.ui \ mainwindow.ui \
qweb.ui \ qweb.ui \
rescueloadwidget.ui rescueloadwidget.ui

@ -1,6 +1,7 @@
#include "homepagedlg.h" #include "homepagedlg.h"
#include "ui_homepagedlg.h" #include "ui_homepagedlg.h"
#include <QDir> #include <QDir>
#include <QPushButton>
#include <qsettings.h> #include <qsettings.h>
HomePageDlg::HomePageDlg(QWidget *parent) HomePageDlg::HomePageDlg(QWidget *parent)
@ -18,7 +19,12 @@ HomePageDlg::HomePageDlg(QWidget *parent)
//嵌入到主窗口 //嵌入到主窗口
setWindowFlags(Qt::CustomizeWindowHint|Qt::FramelessWindowHint); setWindowFlags(Qt::CustomizeWindowHint|Qt::FramelessWindowHint);
hide(); hide();
settingWidget = new HomePageSetingWidget(this);
settingWidget->setWindowFlags(Qt::Window); // 设置为独立窗口
initSettingUrl(); initSettingUrl();
initButton();
} }
HomePageDlg::~HomePageDlg() HomePageDlg::~HomePageDlg()
@ -54,6 +60,31 @@ void HomePageDlg::initSettingUrl()
_urlMap.insert({"L链",_lLinkIp}); _urlMap.insert({"L链",_lLinkIp});
_urlMap.insert({"宽带自组网",_adHocNetwork}); _urlMap.insert({"宽带自组网",_adHocNetwork});
_urlMap.insert({"机载卫通",_satelliteComm}); _urlMap.insert({"机载卫通",_satelliteComm});
settingWidget->setUrl(_urlMap);
}
/**
* @brief HomePageDlg::initButton
*/
void HomePageDlg::initButton()
{
QIcon icon;
icon.addFile(":/res/settings.png");
QPushButton* btn = new QPushButton;
btn->setParent(this);
btn->setMinimumSize(40,40);
btn->setMaximumSize(40,40);
btn->setIconSize(QSize(30,30));
btn->setIcon(icon);
//点击主页按钮弹出设置页面
connect(btn,&QPushButton::clicked,this,[&](){
//qDebug() << "homepagedlg上的设置按钮点击了";
if(settingWidget->isVisible())
settingWidget->close();
else
settingWidget->show();
});
} }
void HomePageDlg::on_pushButton_clicked() void HomePageDlg::on_pushButton_clicked()

@ -3,6 +3,8 @@
#include <QWidget> #include <QWidget>
#include <unordered_map> #include <unordered_map>
#include "Src/HomePage/homepagesetingwidget.h"
namespace Ui { namespace Ui {
class HomePageDlg; class HomePageDlg;
} }
@ -15,11 +17,13 @@ public:
explicit HomePageDlg(QWidget *parent = nullptr); explicit HomePageDlg(QWidget *parent = nullptr);
~HomePageDlg(); ~HomePageDlg();
QPixmap m_pixmap; QPixmap m_pixmap;
HomePageSetingWidget* settingWidget;
void getUrl(std::unordered_map<QString,QString>& urlMap); void getUrl(std::unordered_map<QString,QString>& urlMap);
private: private:
Ui::HomePageDlg *ui; Ui::HomePageDlg *ui;
void initSettingUrl(); void initSettingUrl();
void initButton();
QString _lLinkIp; QString _lLinkIp;
QString _adHocNetwork; QString _adHocNetwork;

@ -0,0 +1,83 @@
#include "homepagesetingwidget.h"
#include "ui_homepagesetingwidget.h"
HomePageSetingWidget::HomePageSetingWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::HomePageSetingWidget)
, _lLinkIp(""), _adHocNetwork(""), _satelliteComm("")
{
ui->setupUi(this);
urlFile = QCoreApplication::applicationDirPath()+"/config.ini";
_configIni = std::make_unique<QSettings>(urlFile,QSettings::IniFormat);
}
HomePageSetingWidget::~HomePageSetingWidget()
{
delete ui;
}
/**
* @brief HomePageSetingWidget::setUrl .ini
* @param urlMap
*/
void HomePageSetingWidget::setUrl(std::unordered_map<QString,QString>& urlMap)
{
_lLinkIp = urlMap["L链"];
_adHocNetwork = urlMap["宽带自组网"];
_satelliteComm = urlMap["机载卫通"];
initEdit();
}
/**
* @brief HomePageSetingWidget::initEdit Edit
*/
void HomePageSetingWidget::initEdit()
{
ui->lLinkLineEdit->setText(_lLinkIp);
ui->netLineEdit->setText(_adHocNetwork);
ui->sateliteLineEdit->setText(_satelliteComm);
}
void HomePageSetingWidget::on_lLinkButton_clicked()
{
//写参数到配置文件
_lLinkIp = ui->lLinkLineEdit->text();
_configIni->setValue("L链/IP", _lLinkIp);
emit sendOnlyUrl(L_Link,_lLinkIp);
}
void HomePageSetingWidget::on_netButton_clicked()
{
//写参数到配置文件
_adHocNetwork = ui->netLineEdit->text();
_configIni->setValue("宽带自组网/IP", _adHocNetwork);
emit sendOnlyUrl(Adhoc_Network,_adHocNetwork);
}
void HomePageSetingWidget::on_sateliteButton_clicked()
{
//写参数到配置文件
_satelliteComm = ui->sateliteLineEdit->text();
_configIni->setValue("机载卫通/IP", _satelliteComm);
emit sendOnlyUrl(Satelite_Comm,_satelliteComm);
}
void HomePageSetingWidget::on_oneKeyButton_clicked()
{
//写参数到配置文件
_lLinkIp = ui->lLinkLineEdit->text();
_configIni->setValue("L链/IP", _lLinkIp);
_adHocNetwork = ui->netLineEdit->text();
_configIni->setValue("宽带自组网/IP", _adHocNetwork);
_satelliteComm = ui->sateliteLineEdit->text();
_configIni->setValue("机载卫通/IP", _satelliteComm);
std::unordered_map<QString,QString> urlMap;
urlMap.insert({"L链",_lLinkIp});
urlMap.insert({"宽带自组网",_adHocNetwork});
urlMap.insert({"机载卫通",_satelliteComm});
emit sendAllUrl(urlMap);
}

@ -0,0 +1,47 @@
#ifndef HOMEPAGESETINGWIDGET_H
#define HOMEPAGESETINGWIDGET_H
#include <QWidget>
#include <QSettings>
namespace Ui {
class HomePageSetingWidget;
}
class HomePageSetingWidget : public QWidget
{
Q_OBJECT
public:
explicit HomePageSetingWidget(QWidget *parent = nullptr);
~HomePageSetingWidget();
private:
Ui::HomePageSetingWidget *ui;
QString _lLinkIp; //L链
QString _adHocNetwork; //自组网
QString _satelliteComm; //PDT
std::unique_ptr<QSettings> _configIni; //配置文件写入
QString urlFile; //配置文件路径
private:
void initEdit();
public:
void setUrl(std::unordered_map<QString,QString>& urlMap);
private slots:
void on_lLinkButton_clicked();
void on_netButton_clicked();
void on_sateliteButton_clicked();
void on_oneKeyButton_clicked();
signals:
void sendOnlyUrl(unsigned char urlIndex, QString url); //发送信号给网页显示
void sendAllUrl(std::unordered_map<QString,QString> urlMap);
public:
enum urlEnum:unsigned char
{
L_Link = 1,
Adhoc_Network,
Satelite_Comm
};
};
#endif // HOMEPAGESETINGWIDGET_H

@ -0,0 +1,266 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>HomePageSetingWidget</class>
<widget class="QWidget" name="HomePageSetingWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>725</width>
<height>443</height>
</rect>
</property>
<property name="windowTitle">
<string>设置</string>
</property>
<property name="windowIcon">
<iconset resource="../../mainwindow.qrc">
<normaloff>:/res/settings.png</normaloff>:/res/settings.png</iconset>
</property>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>30</x>
<y>10</y>
<width>661</width>
<height>181</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Shape::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Shadow::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::Shape::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Shadow::Raised</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QGroupBox" name="lLinkGroupBox">
<property name="title">
<string>L链</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>IP:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lLinkLineEdit"/>
</item>
<item row="4" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Policy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="lLinkButton">
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>设置</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="netGroupBox">
<property name="title">
<string>宽带自组网</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="4" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Policy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="netButton">
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>设置</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>IP:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="netLineEdit"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="netGroupBox_2">
<property name="title">
<string>卫通</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>IP:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="sateliteLineEdit"/>
</item>
<item row="4" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Policy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="sateliteButton">
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>设置</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Policy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>450</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="oneKeyButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>160</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>一键设置</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Policy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>15</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<resources>
<include location="../../mainwindow.qrc"/>
</resources>
<connections/>
</ui>

@ -8,7 +8,7 @@
#include <QFile> #include <QFile>
#include <qpushbutton.h> #include <qpushbutton.h>
#include <QAction> #include <QAction>
#include "Src/HomePage/homepagesetingwidget.h"
MainWindow::MainWindow(QWidget *parent) MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
@ -92,7 +92,6 @@ void MainWindow::initWindow()
}); });
//使用类中的get方法获取配置文件中的IP //使用类中的get方法获取配置文件中的IP
m_HomePagedlg->getUrl(m_urlMap); m_HomePagedlg->getUrl(m_urlMap);
qDebug() << "=============设备配置================"; qDebug() << "=============设备配置================";
@ -116,6 +115,29 @@ void MainWindow::initWindow()
satelliteCommWeb->setPage(new CustomWebEnginePage()); satelliteCommWeb->setPage(new CustomWebEnginePage());
satelliteCommWeb->load(QUrl(m_urlMap["机载卫通"])); satelliteCommWeb->load(QUrl(m_urlMap["机载卫通"]));
//接收主页面设置窗口的url数据传递并设置
connect(m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendOnlyUrl, this, [&](unsigned char urlIndex, QString url){
switch (urlIndex) {
case HomePageSetingWidget::L_Link:
lLinkWeb->load(QUrl(url));
break;
case HomePageSetingWidget::Adhoc_Network:
lLinkWeb->load(QUrl(url));
break;
case HomePageSetingWidget::Satelite_Comm:
lLinkWeb->load(QUrl(url));
break;
default:
break;
}
});
//接收主页面设置窗口的url数据传递并设置 一键设置
connect(m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendAllUrl, this, [&](std::unordered_map<QString,QString> urlMap){
lLinkWeb->load(QUrl(urlMap["L链"]));
adHocNetworkWeb->load(QUrl(urlMap["宽带自组网"]));
satelliteCommWeb->load(QUrl(urlMap["机载卫通"]));
});
// 设置栈窗口,多页面共享同一窗口 // 设置栈窗口,多页面共享同一窗口
ui->stackedWidget->addWidget(mWeb); ui->stackedWidget->addWidget(mWeb);
ui->stackedWidget->addWidget(lLinkWeb); ui->stackedWidget->addWidget(lLinkWeb);

@ -3,7 +3,7 @@
#include <QMainWindow> #include <QMainWindow>
#include "Src/GDDC/gddcdlg.h" #include "Src/GDDC/gddcdlg.h"
#include "homepagedlg.h" #include "Src/HomePage/homepagedlg.h"
#include "rescueloadwidget.h" #include "rescueloadwidget.h"
#include <QPushButton> #include <QPushButton>
#include <QLabel> #include <QLabel>

Loading…
Cancel
Save