首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt Creator JS: variable expansion中有哪些JS对象?

Qt Creator JS: variable expansion中有哪些JS对象?
EN

Stack Overflow用户
提问于 2017-05-03 22:52:54
回答 2查看 1.2K关注 0票数 7

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

代码语言:javascript
复制
%{JS: Cpp.openNamespaces('%{Class}')}

Cpp似乎是一个全局对象。在Qt Creator中的哪里定义了这些源代码,哪些是可用的?

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

EN

回答 2

Stack Overflow用户

发布于 2017-05-03 22:52:54

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

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

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

-暴露Internal::UtilsJsExtensionCppTools::Internal::CppToolsJsExtension -暴露ModelEditor::Internal::JsExtension

方法参数类型由QJSEngine映射到JavaScript类型。例如,要获得Qt包含,可以使用以下替换:

代码语言:javascript
复制
%{JS: QtSupport.qtIncludes([ '%{Base}' ], [ '%{Base}' ])}

给定签名

代码语言:javascript
复制
QString qtIncludes(const QStringList &qt4, const QStringList &qt5)

方法列表如下。

实用程序

代码语言:javascript
复制
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

代码语言:javascript
复制
// 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;

建模

代码语言:javascript
复制
QString fileNameToElementName(const QString &file);
QString elementNameToFileName(const QString &element);

QtSupport

代码语言:javascript
复制
// 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);

风险投资

代码语言:javascript
复制
bool isConfigured(const QString &vcsId) const;
QString displayName(const QString &vcsId) const;
票数 10
EN

Stack Overflow用户

发布于 2019-04-01 22:13:34

注意通过宏扩展器公开的几个JS变量也很有用(请参阅:https://github.com/qt-creator/qt-creator/blob/master/src/plugins/coreplugin/coreplugin.cpp#L169

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43763488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档