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>
<qresource prefix="/">
<file>res/sys_close.png</file>
<file>res/sys_float.png</file>
<file>res/sys_max.png</file>
<file>res/sys_min.png</file>
<file>res/sys_restore.png</file>

View File

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

View File

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

View File

@ -49,6 +49,19 @@
</property>
</spacer>
</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>
<widget class="QPushButton" name="sys_close">
<property name="maximumSize">

View File

@ -1,6 +1,7 @@
#include "DockWidget.h"
#include <QStyleOptionDockWidget>
#include <QMouseEvent>
#include "ui/Menu/SystemManagerMenu.h"
#include "common/SpdLogger.h"
@ -54,6 +55,7 @@ void DockWidget::setWindowTitle(const QString& text) {
void DockWidget::SetDockWidgetTitleBar(DockWidgetTitleBar* titleBar) {
if (nullptr != titleBar_) {
disconnect(titleBar_, &DockWidgetTitleBar::signalClose, this, &DockWidget::close);
disconnect(titleBar_, &DockWidgetTitleBar::signalToggleFloating, this, &DockWidget::OnToggleFloat);
}
titleBar_ = titleBar;
if (nullptr == titleBar_) {
@ -63,6 +65,7 @@ void DockWidget::SetDockWidgetTitleBar(DockWidgetTitleBar* titleBar) {
titleBar_->SetTitle(windowTitle());
connect(titleBar_, &DockWidgetTitleBar::signalClose, this, &DockWidget::OnClose);
connect(titleBar_, &DockWidgetTitleBar::signalToggleFloating, this, &DockWidget::OnToggleFloat);
QDockWidget::setTitleBarWidget(titleBar_);
}
@ -86,3 +89,12 @@ void DockWidget::OnClose() {
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);
//}
//QSize minimumSizeHint() const override;
protected:
void mouseDoubleClickEvent(QMouseEvent* event) override;
Q_SIGNALS:
void signalClose();
void signalToggleFloating();
};
class DockWidget : public QDockWidget {
@ -45,6 +48,7 @@ protected:
private:
void OnClose();
void OnToggleFloat();
private:
DockWidgetTitleBar* titleBar_{ nullptr };

View File

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