DYTSrouce/src/ui/MainFrame.h

53 lines
985 B
C
Raw Normal View History

2025-01-04 04:12:51 +00:00
#pragma once
#include <QMap>
#include "FramelessWindow.h"
namespace Ui {
class MainFrame;
}
class QLineEdit;
class MainFrame : public FramelessWindow {
Q_OBJECT
public:
explicit MainFrame(QWidget *parent = nullptr);
~MainFrame();
static MainFrame& Get();
2025-01-19 17:08:04 +00:00
template<typename T>
T* GetMenuManager(const QString& name) {
QWidget* widget = GetMenuWidget(name);
if (widget) {
T* t = qobject_cast<T*>(widget);
if (t) {
return t;
}
}
return nullptr;
}
2025-01-04 04:12:51 +00:00
protected:
void paintEvent(QPaintEvent* event) override;
protected:
void OnMenuTrigged();
2025-06-19 16:06:56 +00:00
void SetCurrentMenu(int index);
2025-01-04 04:12:51 +00:00
private:
void InitUI();
void AddMenuWidget(const QString& name, const QString& text, QWidget* widget);
2025-01-19 17:08:04 +00:00
QWidget* GetMenuWidget(const QString& name);
2025-01-04 04:12:51 +00:00
private:
Ui::MainFrame* ui;
using MenuWidget = QMap<class QPushButton*, int>;
MenuWidget menuWidget_;
};