⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 base.h

📁 c++的guiQt做的开发
💻 H
字号:
#ifndef __BASE_H__#define __BASE_H__#include <QMap>#include <QStringList>#include <guitypes.h>class QString;namespace gui {class MainWindow;class CommandParams;/** Member function without parameter */typedef void (MainWindow::*CommandFunc)();/** Member function accepting list of parameters */typedef void (MainWindow::*CommandFuncParam)(const QStringList &);/** Map of parameter-less member functions */typedef QMap<QString,CommandFunc> CommandMap;/** Map of member functions with parameters */typedef QMap<QString,CommandFuncParam> CommandMapParam;/** Map with help texts for parameters */typedef QMap<QString,CommandParams*> CommandParameters;/** Base class serving as a system to register and invoke commands*/class Base {public: Base(); ~Base(); //Enum type info QString enumInfo(const QString &id); bool isEnumType(const QString &name); QStringList enumKeys(const QString &name); QStringList enumValues(const QString &name); //returning help texts QString helpTextHtml(const QString &name, bool longText=false); const QStringList& commandList(); bool validCommand(const QString &funcName); QString beforeParamHelp(const QString &funcName); QString afterParamHelp(const QString &funcName);protected: //Enum types void registerEnum(const QString &id,const QStringList &values,const QStringList &keys); void registerEnum(const QString &id,const QStringList &values,int start=0); void registerEnum(const QString &id,const QString &values,int start=0); void registerEnum(const QString &id,const QString &values,const QString &keys); //Registering functions and help for them void addFunc(const QString &name,CommandFunc fn,const QString &helpText); void addFunc(const QString &name,CommandFuncParam fn,const QString &helpText); void addFuncParam(const QString &funcName,const QString &type, const QString &name,const QString &description,const QString &caption=QString::null,const QString &defValue=QString::null); void addFuncParamHelp(const QString &funcName,const QString &helpText); //Reset void unregisterAll(); //Reading parameters from functions QString currentFunction(); double getParamDouble(const QString &name); float getParamFloat(const QString &name); int getParamScaleInt(const QString &name); double getParamScaleDouble(const QString &name); int getParamInt(const QString &name); QString getParam(const QString &name); int minParamCount(const QString &funcName); void paramsToMap(const QString &funcName,const QStringList &param); SMap paramMap(const QString &funcName,const QStringList &param); QStringList paramNames(const QString &funcName); QStringList paramTypes(const QString &funcName); QStringList paramHelps(const QString &funcName); QStringList paramCaptions(const QString &funcName); //Invoking commands bool invokeCommand(MainWindow *context,const QString &cmd, const QStringList &params);private: /** Map with commandline functions without parameters */ CommandMap func; /** Map with commandline functions accepting parameters */ CommandMapParam func_p; /** Map with commandline parameters */ CommandParameters func_param; /** List of available commandline commands */ QStringList commands; /** length of longest command name */ int maxCommandLength; /** Global named parameters used by getImageAndParamFor + getParam* functions */ SMap globalParams; /** Help texts */ SMap helpTexts; /** true, if commands array is sorted */ bool commandsSorted; /** Name of function that is currently invoked */ QString invokedFunction; /** Keys of enum elements */ QMap<QString,QStringList> enumKeyList; /** Values of enum elements */ QMap<QString,QStringList> enumValueList;};} //namespace base#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -