PowerMaster/include/dataPanel.h

99 lines
2.4 KiB
C
Raw Normal View History

2024-10-10 16:59:51 +08:00
#ifndef DATAPANEL_H
#define DATAPANEL_H
#include <QDialog>
QT_BEGIN_NAMESPACE
namespace Ui {
class panelToolWidget;
}
QT_END_NAMESPACE
class CustomMenu;
class QBoxLayout;
class QScrollArea;
class PanelToolWidget;
class PanelConfigurationWidget;
class CustomBorderContainer;
class PanelToolWidget : public QWidget
{
Q_OBJECT
public:
PanelToolWidget(QWidget *parent = nullptr);
~PanelToolWidget();
friend class DataPanel;
private:
Ui::panelToolWidget* ui;
};
class DataPanel : public QDialog
{
Q_OBJECT
public:
DataPanel(QWidget *parent = nullptr);
~DataPanel();
/**
* widget时的插入方式widget的实际大小和panel的大小设定可能不一致scrollarea来进行承载
* AutoScrollArea widget的类型来自动执行widget输入scrollarea使scrollarea来承载
* ForceScrollArea widget什么类型scrollarea进行承载
* ForceNoScrollArea widget什么类型使scrollarea进行承载
*/
enum eInsertMode
{
AutoScrollArea,
ForceScrollArea,
ForceNoScrollArea
};
void setWiget(QWidget*, eInsertMode InsertMode = ForceNoScrollArea);
QWidget* takeWidget();
void setName(const QString&);
const QString& getName();
protected:
bool event(QEvent*);
/*void keyPressEvent(QKeyEvent*);
void mousePressEvent(QMouseEvent*);
void enterEvent(QEnterEvent*);
void leaveEvent(QEvent*);
void resizeEvent(QResizeEvent*);*/
public slots:
void onToolBtnClicked_setting();
void onToolBtnClicked_fullScreen();
void onToolBtnClicked_menu();
void onAction_remove();
void onAction_moveToFront();
void onAction_moveToBack();
void onAboutToHide_toolMenu();
signals:
void sgl_remove(const QString&);
private:
void setupScrollArea();
void autoSetGeometry(); //在缩放和移动时以其它panel和parent的border为依据自动调整
bool m_bMouseEnter;
QString m_strName;
QRect m_curGeometry;
CustomMenu* m_pToolMenu;
QWidget* m_pContentWidget;
QBoxLayout* m_pLayout;
QScrollArea* m_pScrollArea;
PanelToolWidget* m_pToolWidget;
PanelConfigurationWidget* m_pConfigurationWidget;
CustomBorderContainer* m_pCustomBorderContainer;
};
#endif