Add a button to Topbar to call out WarningMessage above mainwindow , make the WarningMEssagewidget be popup widget.

This commit is contained in:
chenhuijun
2024-04-19 14:10:47 +08:00
parent 7dc0404481
commit e4eb325c40
4 changed files with 25 additions and 6 deletions

View File

@@ -27,8 +27,8 @@ WarningMessageWidget::WarningMessageWidget(QWidget *parent):QWidget(parent)
, mErrorEmptyMessage(new QLabel(tr("System is working properly.")))
, mWarningEmptyMessage(new QLabel(tr("No message.")))
{
// setWindowFlags(windowFlags()|Qt::FramelessWindowHint|Qt::Popup);
setWindowFlags(windowFlags()|Qt::FramelessWindowHint);
setWindowFlags(windowFlags()|Qt::FramelessWindowHint|Qt::Popup);
// setWindowFlags(windowFlags()|Qt::FramelessWindowHint);
setWindowOpacity(1);
setAttribute(Qt::WA_TranslucentBackground);
setObjectName("WarningPanel");

View File

@@ -7,8 +7,11 @@
#include <QLabel>
#include <QHBoxLayout>
#include <QDateTime>
#include <QToolButton>
#include "components/RollingMessageWidget.h"
#include "event/EventCenter.h"
#include "errorhandle/GUIErrorLW.h"
#include "json/jsonobject.h"
@@ -51,8 +54,13 @@ TopBarWidget::TopBarWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent,
QPixmap pixmap(*isConnected ? ":/icons/link_g.png" : ":/icons/link_r.png");
linkIcon->setPixmap(QPixmap(pixmap));
});
auto readyIcon = new QLabel(this);
auto readyIcon = new QToolButton(this);
readyIcon->setObjectName("ready");
connect(readyIcon, &QToolButton::clicked,[=](){
emit warnBtnClicked();
});
auto lockIcon = new QLabel(this);
lockIcon->setText("");
auto status_layout = new QHBoxLayout(statusBarWidget);
@@ -66,8 +74,9 @@ TopBarWidget::TopBarWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent,
layout->addWidget(spacerLine);
layout->addWidget(linkIcon);
layout->addWidget(readyIcon);
layout->addWidget(lockIcon);
layout->addWidget(readyIcon);
auto l = new QVBoxLayout(widgetMsg);
l->setMargin(0);

View File

@@ -10,7 +10,9 @@ class TopBarWidget :public QWidget{
Q_OBJECT
public :
explicit TopBarWidget(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
public:
signals:
void warnBtnClicked();
};

View File

@@ -24,6 +24,7 @@
#include "models/User.h"
#include "appvals/AppGlobalValues.h"
#include "components/UTextEdit.h"
#include "components/WarningMessageWidget.h"
#include "json/jsonobject.h"
@@ -130,7 +131,14 @@ void MainWindow::initializeLayout()
auto layout = new QVBoxLayout(mUI->mCentralWidget);
layout->setMargin(0);
layout->setSpacing(0);
QWidget* topBarWidget = new TopBarWidget(this);
TopBarWidget* topBarWidget = new TopBarWidget(this);
auto popNotifications = new WarningMessageWidget(this);
popNotifications->hide();
connect(topBarWidget,&TopBarWidget::warnBtnClicked,[=](){
auto pos = topBarWidget->mapToGlobal(QPoint(topBarWidget->width(),topBarWidget->height()));
popNotifications->setPopupArgs(height(),pos.x(),pos.y());
popNotifications->show();
});
layout->addWidget(topBarWidget);
layout->addWidget(mTabWidget);
layout->addWidget(mInitializWidget);