DYTSrouce/src/ui/MainFrame.h
2025-06-20 00:06:56 +08:00

53 lines
985 B
C++

#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();
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;
}
protected:
void paintEvent(QPaintEvent* event) override;
protected:
void OnMenuTrigged();
void SetCurrentMenu(int index);
private:
void InitUI();
void AddMenuWidget(const QString& name, const QString& text, QWidget* widget);
QWidget* GetMenuWidget(const QString& name);
private:
Ui::MainFrame* ui;
using MenuWidget = QMap<class QPushButton*, int>;
MenuWidget menuWidget_;
};