Initial commit of BudgetPro
This commit is contained in:
@@ -0,0 +1,159 @@
|
||||
/************************************************************************
|
||||
* 版权所有 (C) 梁振 Email: liang1057@163.com.cn
|
||||
*
|
||||
* 文件名称: QsMainWindow.h
|
||||
* 内容摘要:
|
||||
* 其它说明: 无
|
||||
* 当前版本: 0.1
|
||||
* 作 者: Leon
|
||||
* 完成日期: [2020/06/16]
|
||||
*
|
||||
* 修改记录1:暂无
|
||||
* 修改日期:
|
||||
* 版 本 号:
|
||||
* 修 改 人:
|
||||
* 修改内容:
|
||||
* 修改记录2:…
|
||||
************************************************************************/
|
||||
|
||||
#ifndef QSMAINWINDOW_H
|
||||
#define QSMAINWINDOW_H
|
||||
|
||||
#include <QTabWidget>
|
||||
#include <QMainWindow>
|
||||
#include <QDragMoveEvent>
|
||||
|
||||
#include "SgfParamManager.h"
|
||||
#include "QsfTitleBar.h"
|
||||
|
||||
|
||||
/************************************************************************
|
||||
类声明: 工作窗口
|
||||
************************************************************************/
|
||||
/** @brief 工作窗口.
|
||||
*
|
||||
* @details 工作窗口的主体是Tab窗口.
|
||||
*/
|
||||
class QsfWorkWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
/** @brief 构造函数.
|
||||
*
|
||||
* @details 构造函数.
|
||||
* @param parent 父指针.
|
||||
* @param flags flags.
|
||||
*/
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
|
||||
QsfWorkWindow(QWidget *parent = 0, Qt::WindowFlags flags = Qt::WindowFlags());
|
||||
#else
|
||||
QsfWorkWindow(QWidget *parent = 0, Qt::WFlags flags = 0);
|
||||
#endif
|
||||
/** @brief 析构函数.
|
||||
*
|
||||
* @details 析构函数,为了防止资源泄漏所以为virtual函数.
|
||||
*/
|
||||
virtual ~QsfWorkWindow();
|
||||
|
||||
public:
|
||||
/** @brief 获取当前tab页Widget函数.
|
||||
*
|
||||
* @details 获取当前tab页Widget函数.
|
||||
* @return 当前Widget指针.
|
||||
*/
|
||||
QWidget* getCurrentTabWidget();
|
||||
|
||||
/** @brief 获取当前tab页SgfWidget函数.
|
||||
*
|
||||
* @details 获取当前tab页SgfWidget函数.
|
||||
* @return 当前SgfWidget指针.
|
||||
*/
|
||||
QWidget * currentTabWidget();
|
||||
|
||||
/** @brief 获取tabWidget函数.
|
||||
*
|
||||
* @details 获取tabWidget函数.
|
||||
* @return SgfTabWidget指针.
|
||||
*/
|
||||
QTabWidget* workSpace();
|
||||
|
||||
private:
|
||||
QTabWidget* m_workspace;
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
类声明:
|
||||
************************************************************************/
|
||||
|
||||
/** @brief
|
||||
*
|
||||
* @details
|
||||
*/
|
||||
/** 默认 布局文件名称 */
|
||||
const QString MAINWINDOWLAYOUTFILE = "sw_mainframe.layout";
|
||||
/** @brief 应用程序主窗口对象
|
||||
*
|
||||
* @details 定义一个应用程序主窗口的宏对象,可在插件中访问主窗口资源.这是一个指针
|
||||
*/
|
||||
#define QSF_MainWindow ((QsfMainWindow*)(COREOBJECT(QsfMainWindow)))
|
||||
|
||||
#define QSF_MainWindow_GetParam(type, name) static_cast<type*>(GET_COREOBJECT(SgfParamManager)->getParamValue( string(name)))
|
||||
#define QSF_MainWindow_GetParam(type, name) ((type*)(GET_COREOBJECT(SgfParamManager)->getParamValue( string(name))))
|
||||
|
||||
/**************************************************************************
|
||||
* 类声明 *
|
||||
**************************************************************************/
|
||||
|
||||
/** @brief 应用程序主窗口类.
|
||||
*
|
||||
* @details 平台应用程序框架服务-应用程序主窗口类
|
||||
*/
|
||||
class QsfMainWindow : public QWidget //, public SgfParamManager
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QsfMainWindow();
|
||||
~QsfMainWindow();
|
||||
static void createMainWindow();
|
||||
|
||||
QsfTitleBar* titleBar(){
|
||||
return m_titleBar;
|
||||
}
|
||||
QsfWorkWindow* workWindow(){
|
||||
return m_workWindow;
|
||||
}
|
||||
QTabWidget* tabMenuWidget(){
|
||||
return m_tableMenu;
|
||||
}
|
||||
|
||||
/** @brief 创建DockWidget. */
|
||||
QDockWidget* createDockWidget(QString title, QString name, Qt::DockWidgetArea area);
|
||||
/** @brief 添加DockWidget. */
|
||||
void addDockWidget(QDockWidget* tDock, QString title, Qt::DockWidgetArea area);
|
||||
|
||||
/** @brief 创建工作页Widget. */
|
||||
QWidget* createWorkWidget(QString title, QString name);
|
||||
/** @brief 添加工作页Widget. */
|
||||
void addWorkWidget(QWidget* workTab, QString title);
|
||||
|
||||
private:
|
||||
QsfWorkWindow* m_workWindow;
|
||||
QsfTitleBar* m_titleBar;
|
||||
QTabWidget* m_tableMenu;
|
||||
|
||||
|
||||
protected:
|
||||
/** @brief 标题范围. */
|
||||
QRect m_titleRect;
|
||||
/** @brief 鼠标上一次的位置. */
|
||||
QPoint oldMousePos;
|
||||
/** @brief 鼠标单击. */
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
/** @brief 鼠标双击. */
|
||||
void mouseDoubleClickEvent ( QMouseEvent * event);
|
||||
/** @brief 鼠标拖动. */
|
||||
void mouseMoveEvent(QMouseEvent *event);
|
||||
};
|
||||
|
||||
|
||||
#endif // QsfMainWindow_H
|
||||
Reference in New Issue
Block a user