Yayin Story Studio logo Yayin Story Studio 项目文档
回到主页 用户手册

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之后,setCommandNamesetAlias 方法将不再生效。

成员函数文档

[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 开始支持。