gpt4 book ai didi

qt - Qt Creator JS 中有哪些 JS 对象可用 : variable expansion?

转载 作者:行者123 更新时间:2023-12-03 01:31:23 25 4
gpt4 key购买 nike

Qt Creator 的向导和配置设置支持variable expansion ,包括 JavaScript 表达式的求值,例如C++ class wizard file template包含:

%{JS: Cpp.openNamespaces('%{Class}')}

Cpp 似乎是一个全局对象。这些定义在 Qt Creator 源代码中的什么位置,以及哪些内容可用?

这些没有记录在任何地方。

最佳答案

JavaScript 变量扩展由 JsExpander 执行在核心插件中。扩展器可以注册QObject实例并将它们公开为全局JS对象的属性。

要查找所有这些全局对象,请搜索 registerQObjectForJs 方法调用。请参阅github search results for this method .

从 Qt Creator 4.2.1 开始,直到至少 4.6,以下是唯一注册的对象:

方法参数类型通过QJSEngine映射到JavaScript类型。例如。要获取 Qt 包含文件,可以进行以下替换:

%{JS: QtSupport.qtIncludes([ '%{Base}' ], [ '%{Base}' ])}

给出签名

QString qtIncludes(const QStringList &qt4, const QStringList &qt5)

方法列表如下。

实用程序

QString toNativeSeparators(const QString &in) const;
QString fromNativeSeparators(const QString &in) const;

QString baseName(const QString &in) const;
QString fileName(const QString &in) const;
QString completeBaseName(const QString &in) const;
QString suffix(const QString &in) const;
QString completeSuffix(const QString &in) const;
QString path(const QString &in) const;
QString absoluteFilePath(const QString &in) const;

QString relativeFilePath(const QString &path, const QString &base) const;

// File checks:
bool exists(const QString &in) const;
bool isDirectory(const QString &in) const;
bool isFile(const QString &in) const;

// MimeDB:
QString preferredSuffix(const QString &mimetype) const;

// Generate filename:
QString fileName(const QString &path,
const QString &extension) const;

// Generate temporary file:
QString mktemp(const QString &pattern) const;

// Generate a ascii-only string:
QString asciify(const QString &input) const;

Cpp

// Generate header guard:
QString headerGuard(const QString &in) const;

// Fix the filename casing as configured in C++/File Naming:
QString fileName(const QString &path, const QString &extension) const;

// Work with classes:
QStringList namespaces(const QString &klass) const;
QString className(const QString &klass) const;
QString classToFileName(const QString &klass,
const QString &extension) const;
QString classToHeaderGuard(const QString &klass, const QString &extension) const;
QString openNamespaces(const QString &klass) const;
QString closeNamespaces(const QString &klass) const;

建模

QString fileNameToElementName(const QString &file);
QString elementNameToFileName(const QString &element);

Qt支持

// Ui file related:
// Change the class name in a UI XML form
QString changeUiClassName(const QString &uiXml, const QString &newUiClassName);

QString uiClassName(const QString &uiXml);

// Generic Qt:
QString qtIncludes(const QStringList &qt4, const QStringList &qt5);

VC

bool isConfigured(const QString &vcsId) const;
QString displayName(const QString &vcsId) const;

关于qt - Qt Creator JS 中有哪些 JS 对象可用 : variable expansion?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43763488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com