modify ui layout and add sys_float

This commit is contained in:
brige 2025-10-12 14:33:16 +08:00
parent 0e8d2aaf7d
commit c638cbbe19
9 changed files with 81 additions and 28 deletions

View File

@ -1,6 +1,7 @@
<RCC> <RCC>
<qresource prefix="/"> <qresource prefix="/">
<file>res/sys_close.png</file> <file>res/sys_close.png</file>
<file>res/sys_float.png</file>
<file>res/sys_max.png</file> <file>res/sys_max.png</file>
<file>res/sys_min.png</file> <file>res/sys_min.png</file>
<file>res/sys_restore.png</file> <file>res/sys_restore.png</file>

View File

@ -72,6 +72,17 @@ QPushButton#sys_close {
padding: 0; padding: 0;
} }
QPushButton#sys_float {
max-width:48px;
min-width:48px;
max-height:28px;
min-height:28px;
border: none;
background: transparent;
image: url(:/res/sys_float.png);
padding: 0;
}
QPushButton#sys_min { QPushButton#sys_min {
max-width:48px; max-width:48px;
min-width:48px; min-width:48px;

BIN
src/res/sys_float.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 B

View File

@ -540,132 +540,132 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="57"/> <location filename="../ui/MainWindow.cpp" line="58"/>
<source>model elements</source> <source>model elements</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="64"/> <location filename="../ui/MainWindow.cpp" line="66"/>
<source>attribte</source> <source>attribte</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="79"/> <location filename="../ui/MainWindow.cpp" line="82"/>
<source>Main View</source> <source>Main View</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="113"/> <location filename="../ui/MainWindow.cpp" line="117"/>
<source>Wave Curve</source> <source>Wave Curve</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="121"/> <location filename="../ui/MainWindow.cpp" line="126"/>
<source>Speed Curve</source> <source>Speed Curve</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="133"/> <location filename="../ui/MainWindow.cpp" line="139"/>
<source>3D Curve</source> <source>3D Curve</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="148"/> <location filename="../ui/MainWindow.cpp" line="155"/>
<source>Target number</source> <source>Target number</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="148"/> <location filename="../ui/MainWindow.cpp" line="155"/>
<source>Signal-to-noise ratio</source> <source>Signal-to-noise ratio</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="149"/> <location filename="../ui/MainWindow.cpp" line="156"/>
<source>Azimuth line of sight</source> <source>Azimuth line of sight</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="149"/> <location filename="../ui/MainWindow.cpp" line="156"/>
<source>Pitch gaze angle</source> <source>Pitch gaze angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="150"/> <location filename="../ui/MainWindow.cpp" line="157"/>
<source>azimuth</source> <source>azimuth</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="150"/> <location filename="../ui/MainWindow.cpp" line="157"/>
<source>Pitch angle</source> <source>Pitch angle</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="151"/> <location filename="../ui/MainWindow.cpp" line="158"/>
<source>attribute</source> <source>attribute</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="151"/> <location filename="../ui/MainWindow.cpp" line="158"/>
<source>Doppler</source> <source>Doppler</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="152"/> <location filename="../ui/MainWindow.cpp" line="159"/>
<source>course</source> <source>course</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="152"/> <location filename="../ui/MainWindow.cpp" line="159"/>
<source>Speed</source> <source>Speed</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="153"/> <location filename="../ui/MainWindow.cpp" line="160"/>
<source>longitude</source> <source>longitude</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="153"/> <location filename="../ui/MainWindow.cpp" line="160"/>
<source>latitude</source> <source>latitude</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="154"/> <location filename="../ui/MainWindow.cpp" line="161"/>
<source>distance</source> <source>distance</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="154"/> <location filename="../ui/MainWindow.cpp" line="161"/>
<source>velocity</source> <source>velocity</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="155"/> <location filename="../ui/MainWindow.cpp" line="162"/>
<source>Radial dimensions</source> <source>Radial dimensions</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="155"/> <location filename="../ui/MainWindow.cpp" line="162"/>
<source>Target RCS</source> <source>Target RCS</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="161"/> <location filename="../ui/MainWindow.cpp" line="168"/>
<source>Report Table</source> <source>Report Table</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="173"/> <location filename="../ui/MainWindow.cpp" line="181"/>
<source>Signal Indicator Lamp</source> <source>Signal Indicator Lamp</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="183"/> <location filename="../ui/MainWindow.cpp" line="192"/>
<source>ParamSetting</source> <source>ParamSetting</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../ui/MainWindow.cpp" line="191"/> <location filename="../ui/MainWindow.cpp" line="201"/>
<source>bat File</source> <source>bat File</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -14,6 +14,7 @@ DockTitleBar::DockTitleBar(QWidget* parent)
, ui(new Ui::DockTitleBar) { , ui(new Ui::DockTitleBar) {
ui->setupUi(this); ui->setupUi(this);
connect(ui->sys_close, &QPushButton::clicked, this, &DockTitleBar::signalClose); connect(ui->sys_close, &QPushButton::clicked, this, &DockTitleBar::signalClose);
connect(ui->sys_float, &QPushButton::clicked, this, &DockTitleBar::signalToggleFloating);
} }
DockTitleBar::~DockTitleBar() { DockTitleBar::~DockTitleBar() {

View File

@ -49,6 +49,19 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item>
<widget class="QPushButton" name="sys_float">
<property name="maximumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item> <item>
<widget class="QPushButton" name="sys_close"> <widget class="QPushButton" name="sys_close">
<property name="maximumSize"> <property name="maximumSize">

View File

@ -1,6 +1,7 @@
#include "DockWidget.h" #include "DockWidget.h"
#include <QStyleOptionDockWidget> #include <QStyleOptionDockWidget>
#include <QMouseEvent>
#include "ui/Menu/SystemManagerMenu.h" #include "ui/Menu/SystemManagerMenu.h"
#include "common/SpdLogger.h" #include "common/SpdLogger.h"
@ -54,6 +55,7 @@ void DockWidget::setWindowTitle(const QString& text) {
void DockWidget::SetDockWidgetTitleBar(DockWidgetTitleBar* titleBar) { void DockWidget::SetDockWidgetTitleBar(DockWidgetTitleBar* titleBar) {
if (nullptr != titleBar_) { if (nullptr != titleBar_) {
disconnect(titleBar_, &DockWidgetTitleBar::signalClose, this, &DockWidget::close); disconnect(titleBar_, &DockWidgetTitleBar::signalClose, this, &DockWidget::close);
disconnect(titleBar_, &DockWidgetTitleBar::signalToggleFloating, this, &DockWidget::OnToggleFloat);
} }
titleBar_ = titleBar; titleBar_ = titleBar;
if (nullptr == titleBar_) { if (nullptr == titleBar_) {
@ -63,6 +65,7 @@ void DockWidget::SetDockWidgetTitleBar(DockWidgetTitleBar* titleBar) {
titleBar_->SetTitle(windowTitle()); titleBar_->SetTitle(windowTitle());
connect(titleBar_, &DockWidgetTitleBar::signalClose, this, &DockWidget::OnClose); connect(titleBar_, &DockWidgetTitleBar::signalClose, this, &DockWidget::OnClose);
connect(titleBar_, &DockWidgetTitleBar::signalToggleFloating, this, &DockWidget::OnToggleFloat);
QDockWidget::setTitleBarWidget(titleBar_); QDockWidget::setTitleBarWidget(titleBar_);
} }
@ -86,3 +89,12 @@ void DockWidget::OnClose() {
emit signalClose(); emit signalClose();
} }
void DockWidget::OnToggleFloat() {
setFloating(!isFloating());
}
void DockWidgetTitleBar::mouseDoubleClickEvent(QMouseEvent* event) {
QWidget::mouseDoubleClickEvent(event);
emit signalToggleFloating();
}

View File

@ -18,9 +18,12 @@ public:
// return QSize(270, 900); // return QSize(270, 900);
//} //}
//QSize minimumSizeHint() const override; //QSize minimumSizeHint() const override;
protected:
void mouseDoubleClickEvent(QMouseEvent* event) override;
Q_SIGNALS: Q_SIGNALS:
void signalClose(); void signalClose();
void signalToggleFloating();
}; };
class DockWidget : public QDockWidget { class DockWidget : public QDockWidget {
@ -45,6 +48,7 @@ protected:
private: private:
void OnClose(); void OnClose();
void OnToggleFloat();
private: private:
DockWidgetTitleBar* titleBar_{ nullptr }; DockWidgetTitleBar* titleBar_{ nullptr };

View File

@ -29,6 +29,7 @@
#include "ui_MainWindow.h" #include "ui_MainWindow.h"
#include "viewer/OsgWidget.h" #include "viewer/OsgWidget.h"
#include "DockTitleBar.h"
MainWindow::MainWindow(QWidget* parent) MainWindow::MainWindow(QWidget* parent)
: QMainWindow(parent) : QMainWindow(parent)
@ -55,6 +56,7 @@ void MainWindow::InitUI() {
setDockOptions(QMainWindow::AllowTabbedDocks | QMainWindow::AllowNestedDocks | QMainWindow::AnimatedDocks); setDockOptions(QMainWindow::AllowTabbedDocks | QMainWindow::AllowNestedDocks | QMainWindow::AnimatedDocks);
DockWidget* model = new DockWidget(tr("model elements"), 0); DockWidget* model = new DockWidget(tr("model elements"), 0);
model->SetDockWidgetTitleBar(new DockTitleBar(model));
model->setObjectName("Dock.ModelBrowser"); model->setObjectName("Dock.ModelBrowser");
// addDockWidget(pSettingUI->GetArea("ModelBrowser"), model); // addDockWidget(pSettingUI->GetArea("ModelBrowser"), model);
modelBrowser_ = new ModelBrowser(0); modelBrowser_ = new ModelBrowser(0);
@ -62,6 +64,7 @@ void MainWindow::InitUI() {
m_mapDockWidget.insert("ModelBrowser", model); m_mapDockWidget.insert("ModelBrowser", model);
DockWidget* attribte = new DockWidget(tr("attribte"), 0); DockWidget* attribte = new DockWidget(tr("attribte"), 0);
attribte->SetDockWidgetTitleBar(new DockTitleBar(attribte));
attribte->setObjectName("Dock.PropertyBrowser"); attribte->setObjectName("Dock.PropertyBrowser");
//addDockWidget(pSettingUI->GetArea("PropertyBrowser"), attribte); //addDockWidget(pSettingUI->GetArea("PropertyBrowser"), attribte);
propertyBrowser_ = new PropertyBrowser(0); propertyBrowser_ = new PropertyBrowser(0);
@ -77,6 +80,7 @@ void MainWindow::InitUI() {
// 主视图改为 DockWidget支持自由停靠 // 主视图改为 DockWidget支持自由停靠
DockWidget* viewDock = new DockWidget(tr("Main View"), 0); DockWidget* viewDock = new DockWidget(tr("Main View"), 0);
viewDock->SetDockWidgetTitleBar(new DockTitleBar(viewDock));
viewDock->setObjectName("Dock.MainView"); viewDock->setObjectName("Dock.MainView");
viewDock->setWidget(qtOsgViewWidget_); viewDock->setWidget(qtOsgViewWidget_);
addDockWidget(Qt::LeftDockWidgetArea, viewDock); addDockWidget(Qt::LeftDockWidgetArea, viewDock);
@ -111,6 +115,7 @@ void MainWindow::InitUI() {
} }
DockWidget* fitCurveDock = new DockWidget(tr("Wave Curve"), 0); DockWidget* fitCurveDock = new DockWidget(tr("Wave Curve"), 0);
fitCurveDock->SetDockWidgetTitleBar(new DockTitleBar(fitCurveDock));
fitCurveDock->setObjectName("Dock.WaveCurveDialog"); fitCurveDock->setObjectName("Dock.WaveCurveDialog");
fitCurveDlg_ = new FitCurveDialog(1); fitCurveDlg_ = new FitCurveDialog(1);
fitCurveDlg_->AttachDock(fitCurveDock); fitCurveDlg_->AttachDock(fitCurveDock);
@ -119,6 +124,7 @@ void MainWindow::InitUI() {
fitCurveDlg_->InitWaveFile(wavePath); fitCurveDlg_->InitWaveFile(wavePath);
DockWidget* fitLgCurveDock = new DockWidget(tr("Speed Curve"), 0); DockWidget* fitLgCurveDock = new DockWidget(tr("Speed Curve"), 0);
fitLgCurveDock->SetDockWidgetTitleBar(new DockTitleBar(fitLgCurveDock));
fitLgCurveDock->setObjectName("Dock.SpeedCurveDialog"); fitLgCurveDock->setObjectName("Dock.SpeedCurveDialog");
fitYLgCurveDlg_ = new FitCurveDialog(1); fitYLgCurveDlg_ = new FitCurveDialog(1);
@ -131,6 +137,7 @@ void MainWindow::InitUI() {
fitYLgCurveDlg_->InitReportFile(speedPath); fitYLgCurveDlg_->InitReportFile(speedPath);
DockWidget* surfaceCurveDock = new DockWidget(tr("3D Curve"), 0); DockWidget* surfaceCurveDock = new DockWidget(tr("3D Curve"), 0);
surfaceCurveDock->SetDockWidgetTitleBar(new DockTitleBar(surfaceCurveDock));
surfaceCurveDock->setObjectName("Dock.3DCurveDialog"); surfaceCurveDock->setObjectName("Dock.3DCurveDialog");
surfaceDlg_ = new SurfaceDialog(); surfaceDlg_ = new SurfaceDialog();
@ -159,6 +166,7 @@ void MainWindow::InitUI() {
targetUITable_->InitFile(speedPath, 50); targetUITable_->InitFile(speedPath, 50);
DockWidget* dataTableDock = new DockWidget(tr("Report Table"), 0); DockWidget* dataTableDock = new DockWidget(tr("Report Table"), 0);
dataTableDock->SetDockWidgetTitleBar(new DockTitleBar(dataTableDock));
dataTableDock->setObjectName("Dock.TargetListWgt_Table"); dataTableDock->setObjectName("Dock.TargetListWgt_Table");
// addDockWidget(pSettingUI->GetArea("TargetListWgt"), dataTableDock); // addDockWidget(pSettingUI->GetArea("TargetListWgt"), dataTableDock);
targetUITable_->AttachDock(dataTableDock); targetUITable_->AttachDock(dataTableDock);
@ -171,6 +179,7 @@ void MainWindow::InitUI() {
const QString lampPath = RecourceHelper::Get().GetBasePath() + "/workspace/Lamp.txt"; const QString lampPath = RecourceHelper::Get().GetBasePath() + "/workspace/Lamp.txt";
DockWidget* signalIndicatorLampDock = new DockWidget(tr("Signal Indicator Lamp"), 0); DockWidget* signalIndicatorLampDock = new DockWidget(tr("Signal Indicator Lamp"), 0);
signalIndicatorLampDock->SetDockWidgetTitleBar(new DockTitleBar(signalIndicatorLampDock));
signalIndicatorLampDock->setObjectName("Dock.SignalIndicatorLampUI"); signalIndicatorLampDock->setObjectName("Dock.SignalIndicatorLampUI");
signalIndicatorLampUI_ = new SignalIndicatorLampUI; signalIndicatorLampUI_ = new SignalIndicatorLampUI;
signalIndicatorLampUI_->AttachDock(signalIndicatorLampDock); signalIndicatorLampUI_->AttachDock(signalIndicatorLampDock);
@ -181,6 +190,7 @@ void MainWindow::InitUI() {
tabifyDockWidget(fitCurveDock, signalIndicatorLampDock); tabifyDockWidget(fitCurveDock, signalIndicatorLampDock);
DockWidget* addParamSettingDock = new DockWidget(tr("ParamSetting"), 0); DockWidget* addParamSettingDock = new DockWidget(tr("ParamSetting"), 0);
addParamSettingDock->SetDockWidgetTitleBar(new DockTitleBar(addParamSettingDock));
addParamSettingDock->setObjectName("Dock.ParamSetting"); addParamSettingDock->setObjectName("Dock.ParamSetting");
addParamDlg_ = new AddParamSetting(matlabParam); addParamDlg_ = new AddParamSetting(matlabParam);
addParamDlg_->AttachDock(addParamSettingDock); addParamDlg_->AttachDock(addParamSettingDock);
@ -189,6 +199,7 @@ void MainWindow::InitUI() {
tabifyDockWidget(fitCurveDock, addParamSettingDock); tabifyDockWidget(fitCurveDock, addParamSettingDock);
DockWidget* matlabDock = new DockWidget(tr("bat File"), 0); DockWidget* matlabDock = new DockWidget(tr("bat File"), 0);
matlabDock->SetDockWidgetTitleBar(new DockTitleBar(matlabDock));
matlabDock->setObjectName("Dock.Matlab"); matlabDock->setObjectName("Dock.Matlab");
matlabFileDlg_ = new CodeEdtUI; matlabFileDlg_ = new CodeEdtUI;
matlabFileDlg_->AttachDock(matlabDock); matlabFileDlg_->AttachDock(matlabDock);