问题标签 [qtscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4258 浏览

user-interface - 完全在 QtScript 中创建 GUI 应用程序,您的意见是什么?

由于宣布了 QT 许可证更改,我开始研究 QT 框架。它看起来不错,但我不喜欢使用 C++。我知道各种语言有不同的绑定,但QtScript对我来说似乎最有趣。

是否可以使用 QtScript 编写完整的 GUI 应用程序(当然,在 UI 设计师的帮助下),或者它仅用于编写现有应用程序的部分脚本。

0 投票
1 回答
1241 浏览

c++ - Qt:使用 Qt 脚本添加 UI 元素

是否可以使用 QtScript 将新的 GUI 元素添加到 Qt 程序中?例如,假设变量“布局”是垂直布局,这可以接受吗?

0 投票
2 回答
329 浏览

javascript - 你能在 QtScript 中实现惰性数组访问吗?

是否可以实现一个 QObject 以在 QtScript 中使用,它重载 [] 以实现惰性数组填充?

我想实现这样的事情:

并在 C++ 代码中延迟计算该值。这可能吗?

0 投票
2 回答
2611 浏览

qt - 任何像样的 QtScript 教程?

有没有关于插槽或从脚本访问 c++ 值的好的 QtScript 教程?我需要的只是外部文件中的一个函数,它在数组值上使用一些正则表达式,然后将输出发送回主程序。

我知道,它可以使用信号/插槽来完成,但它看起来像开销,我相信有更简单的方法。

0 投票
3 回答
1472 浏览

qt - QtScript:如何重新加载当前脚本?

QScriptEngine 具有评估()方法,可用于加载脚本,执行它并从已加载的脚本中运行指定的函数。但是如何清除当前脚本并加载一个新脚本呢?例如,我使用 evaluate() 从文件加载脚本,然后使用 evaluate() 获取脚本函数并调用它们。但是我能做些什么来清除当前脚本并从不同的文件加载一个新脚本?删除和创建 QScriptEngine 似乎是一种解决方案,但它喜欢在 GUI 线程中创建(由于 QScriptEngineDebugger),而所有脚本操作都在单独的线程中执行。那么有没有办法在不重新创建 QScriptEngine 对象的情况下清除当前脚本?

0 投票
1 回答
990 浏览

windows - QtScript:在 64 位窗口上崩溃

我已经在 windows 下为 64 位架构编译了 Qt,除了 QtScript 之外一切正常。以下简单代码在 32 位Qt for Windows中完美运行,如果使用 64 位 Qt 编译,则会崩溃。也许这是我的代码中的错误?还是Qt不兼容64位?或者是其他东西?欢迎任何意见。

0 投票
1 回答
515 浏览

qt - 从 Qt 脚本访问不基于非 QObject 的对象

从 Qt Script 访问非基于 QObject 的类,例如 QXmlQuery、QDateTime 等,有没有什么好的简单的方法?

我看到的唯一方法是将 QXmlQuery 包装在另一个继承 QObject 的类中,并将我需要从 Qt 脚本访问的每个函数声明为插槽:

0 投票
1 回答
2500 浏览

qt - QtScript:将对象数组传递给 C++

我想将一组对象从我的 QtScript 传递到 C++,但我无法弄清楚如何实现这一点。一旦我创建了一个数组,它里面的元素就会在我可以访问它们之前转换为字符串。

这是我迄今为止一直在尝试的:

以下脚本

印刷

我正在使用 Qt 4.6 ...

0 投票
2 回答
677 浏览

qt - 连接到 QtScript(在 Qt 4.5.2 上)中的信号的函数未触发

我已经注入了一个专有的 Qt (4.5.2) 应用程序,添加了我自己的兼容 QtScript 版本,并设法访问了我需要的所有信号。但是,当连接到它们(通过 QtScript)时,我的函数永远不会被调用。

我已经提出了一些理论来解释为什么会这样,并且我已经测试了我能想到的所有东西,但我遇到了一些障碍。请注意,我从来没有任何连接异常。以下是我目前的理论:

  • 我正在连接的信号已经连接到其他插槽,这以某种方式阻止了它(但据我所知,所有 Qt 信号都会在没有额外工作的情况下触发到所有插槽,并且不能以这种方式受到限制)
  • 信号拒绝我的连接,或在连接后断开我的连接(但我看不到这方面的功能)
  • 我的连接是从另一个线程发生的,这在某种程度上导致它无法正确连接

这些理论中的任何一个都是合理的吗?如果没有,我错过了什么?

0 投票
3 回答
2182 浏览

c++ - STL operator= Visual Studio 2010 的行为改变?

我正在尝试使用 Visual Studio 2010 (C++) 编译 QtScriptGenerator ( gitorious ) 并遇到编译错误。在寻找解决方案时,我偶尔会看到由于 VS2010 的 STL 实现和/或 c++0x 一致性更改而导致的自 VS2008 以来引入的编译损坏的引用。

任何想法下面发生了什么,或者我该如何解决它?如果有问题的代码似乎是 QtScriptGenerator 的,我想我会更容易修复它。但在我看来,有问题的代码可能在 VS2010 的 STL 实现中,我可能需要创建一个解决方法?

PS。我对模板和 STL 非常陌生。我有嵌入式和控制台项目的背景,直到最近才经常避免此类事情,以减少内存消耗和交叉编译器风险。

编辑 - 看起来可能是 Visual Studio 的std::copy实现发生了变化。

这是一些上下文..

pp-内部.h

pp-engine-bits.h

..这是pp_output_iterator的定义

pp-iterator.h