Visindigo::General::CommandHandler Class
class Visindigo::General::CommandHandler此类提供了一个命令处理程序的接口,用于处理和补全命令行输入. 详情...
| 头文件: | #include <General/CommandHandler.h> |
| 自以下版本: | Visindigo 0.13.0 |
| 继承自: | Visindigo::General::PluginModule |
公开成员函数
(自 Visindigo 0.13.0 引入) | CommandHandler(Visindigo::General::Plugin *parent, const QString &moduleID, const QString &commandName = QString(), const QStringList &alias = QStringList()) |
(自 Visindigo 0.13.0 引入) void | disable() |
(自 Visindigo 0.13.0 引入) void | enable() |
(自 Visindigo 0.13.0 引入) QStringList | getAlias() const |
(自 Visindigo 0.13.0 引入) QString | getCommandName() const |
(自 Visindigo 0.13.0 引入) bool | isEnabled() |
(自 Visindigo 0.13.0 引入) virtual Visindigo::General::CommandErrorData | onCommand(const QString &entryName, const QStringList &unnamedArgs, const QMap<QString, QString> &namedArgs) = 0 |
(自 Visindigo 0.13.0 引入) virtual QStringList | onComplete(const QString &entryName, const QStringList &unnamedArgs, const QMap<QString, QString> &namedArgs) |
(自 Visindigo 0.13.0 引入) void | setAlias(const QStringList &alias) |
(自 Visindigo 0.13.0 引入) void | setCommandName(const QString &commandName) |
详细说明
命令处理程序用于定义和管理命令行接口中的命令。每个命令处理程序关联一个命令名称和可选的别名列表。 用户可以通过实现onCommand 方法来定义命令的行为,并通过onComplete 方法提供命令补全功能。
值得注意的是,在enable之后,setCommandName 和 setAlias 方法将不再生效。
成员函数文档
[since Visindigo 0.13.0] CommandHandler::CommandHandler(Visindigo::General::Plugin *parent, const QString &moduleID, const QString &commandName = QString(), const QStringList &alias = QStringList())
构造函数。创建一个命令处理程序对象,并设置其命令名称和可选的别名列表。 parent 插件对象的指针,作为CommandHandler的父对象。 moduleID 模块ID,用于区分不同模块的命令处理程序 commandName 指定命令的名称,不能为空且不能包含空格。 alias 指定命令的别名列表,默认为空列表。别名不能为空且不能包含空格。
如果 commandName 为空,则使用 moduleID 作为命令名称。否则,使用 commandName 作为命令名称。
这个function 从 Visindigo 0.13.0 开始支持。
[since Visindigo 0.13.0] void CommandHandler::disable()
禁用命令处理程序,将其从命令主机中注销。 此函数是直接调用Visindigo::General::CommandHost::unregisterCommand 实现的,请参考该函数的文档了解更多信息。
这个function 从 Visindigo 0.13.0 开始支持。
[since Visindigo 0.13.0] void CommandHandler::enable()
启用命令处理程序,将其注册到命令主机中。 此函数是直接调用Visindigo::General::CommandHost::registerCommand 实现的,请参考该函数的文档了解更多信息。
这个function 从 Visindigo 0.13.0 开始支持。
[since Visindigo 0.13.0] QStringList CommandHandler::getAlias() const
return 命令的别名字符串列表。
这个function 从 Visindigo 0.13.0 开始支持。
[since Visindigo 0.13.0] QString CommandHandler::getCommandName() const
return 命令的名称字符串。
这个function 从 Visindigo 0.13.0 开始支持。
[since Visindigo 0.13.0] bool CommandHandler::isEnabled()
return 命令处理程序是否已启用。
此函数是直接调用Visindigo::General::CommandHost::isCommandRegistered 实现的,请参考该函数的文档了解更多信息。
这个function 从 Visindigo 0.13.0 开始支持。
[pure virtual, since Visindigo 0.13.0] Visindigo::General::CommandErrorData CommandHandler::onCommand(const QString &entryName, const QStringList &unnamedArgs, const QMap<QString, QString> &namedArgs)
命令执行的回调函数。此函数在命令被调用时执行。 entryName 指定调用的命令名称。 unnamedArgs 指定传递给命令的未命名参数列表。 namedArgs 指定传递给命令的命名参数映射。 此函数是一个纯虚函数,必须由派生类实现。实现此函数以定义命令的具体行为。
return 为命令执行结果的错误数据对象,表示命令执行是否成功以及可能的错误信息。
这个function 从 Visindigo 0.13.0 开始支持。
[virtual, since Visindigo 0.13.0] QStringList CommandHandler::onComplete(const QString &entryName, const QStringList &unnamedArgs, const QMap<QString, QString> &namedArgs)
命令补全的回调函数。此函数在需要提供命令补全建议时执行。 entryName 指定调用的命令名称。 unnamedArgs 指定传递给命令的未命名参数列表。 namedArgs 指定传递给命令的命名参数映射。 默认实现返回一个空的字符串列表。派生类可以重写此函数以提供具体的补全建议。
return 命令补全建议的字符串列表。
默认情况下,此函数返回一个空的字符串列表。派生类可以根据具体需求重写此函数。
这个function 从 Visindigo 0.13.0 开始支持。
[since Visindigo 0.13.0] void CommandHandler::setAlias(const QStringList &alias)
设置命令的别名列表。 alias 指定命令的别名列表,不能为空且不能包含空格。
此函数只能在命令处理程序未启用时调用。一旦命令处理程序通过enable 方法启用, 别名列表将无法更改。如果尝试在启用后调用此函数,将不会有任何效果。
此函数在别名无效时会明确抛出Visindigo::General::Exception::Type::InvalidArgument 异常。
这个function 从 Visindigo 0.13.0 开始支持。
[since Visindigo 0.13.0] void CommandHandler::setCommandName(const QString &commandName)
设置命令的名称。 commandName 指定命令的名称,不能为空且不能包含空格。
此函数只能在命令处理程序未启用时调用。一旦命令处理程序通过enable 方法启用, 命令名称将无法更改。如果尝试在启用后调用此函数,将不会有任何效果。
此函数在名称无效时会明确抛出Visindigo::General::Exception::Type::InvalidArgument 异常。
这个function 从 Visindigo 0.13.0 开始支持。