问题标签 [qt5.11]

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 投票
0 回答
91 浏览

qt - Qt 5.11:UI 元素仅在单击时刷新

我有一个在旧版 Qt for Mac 中开发的项目,可能是版本 4。我已经在当前版本 5.11 for Mac 中打开了该项目。似乎QtDeclarative不再可用。因此,我所做的唯一更改是从项目.pro文件中删除这一行。

该项目在 macOS High Sierra 上编译和运行。但是,对于某些 UI 元素,例如QTableWidgetQTreeWidget,我发现在以编程方式更改其内容后,我需要单击该元素才能刷新它。在以前版本的 Qt 中制作项目时,情况并非如此。对此有什么帮助吗?

0 投票
1 回答
255 浏览

javascript - QJSEngine 不会正确评估 js 数组

我有一个文件settings.js,其中包含一个带有设置数组的数组:

如您所见,该文件仅包含数组值,没有分配给变量,最后没有分号。

放在settings.js里面:resources.qrc

我读了settings.jswith QFile。以下是评估 javascript 的代码:

由于该Output行,我知道文件已正确读取,但QJSEngine不会正确评估该值。因为settingsArrayJSValue.isArray()评估为,所以我调用了所有is...()函数settingsArrayJSValue。仅settingsArrayJSValue.isUndefined()评估为true

我也试过这个:

然后settingsArrayJSValue.isObject()评估为(在谈到 js 世界时,这是一种预期的方式),但我也得到一个SyntaxError: Expected token 'numeric literal'

我的最终目标是解析设置数组。因此,我想JSON.stringify评估数组并使用 QtQJson类:

为什么 QJSEngine 将有效数组评估为undefined

如何让 QJSEngine 正确评估数组以便我可以进一步处理它?

0 投票
1 回答
245 浏览

c++ - 使用 QScriptEngine 的问题:必须在 QScriptEngine 之前构建 Q(Core)Application

我有一个使用主窗口小部件的 Qt Gui 应用程序。窗口类如下所示:

在 class2 中,我想使用 qscriptengine。简而言之,它看起来像这样:

类2.h:

类2.cpp:

还有一个 main.cpp 文件,通常看起来:

在初始化 qscript 引擎应用程序崩溃时。调试器将我带到 qscriptengine.cpp,错误 qFatal("QScriptEngine:必须在 QScriptEngine 之前构造 Q(Core)Application");。它还在 ucrtbase.dll 中显示未处理的异常。令人惊讶的是,它在发布配置中工作(但在某处失败),并且在调试配置中启动失败。认为这可能是相关的。我做错了什么,我该如何解决?我确实在将 qtscript 库包含到项目中时遇到了问题,但在我看来,我解决了这些问题。我通过#pragma 注释和项目属性将库添加到项目中。我应该复制它的 .lib 和 .dll 文件还是类似的东西?...

0 投票
2 回答
668 浏览

c++ - 为什么 Q_OBJECT 会破坏 QDoc?

问题

自从从 Qt 5.10 升级到 Qt 5.11 后,我开始在为现有项目生成带有QDoc的文档时遇到问题。

尽管源代码中存在相应的注释,但文档中缺少功能是众多问题之一。

研究

我已设法将问题缩小到包含Q_OBJECT宏,如提供的代码示例所示(见下文)。

Qt 文档中确实提到了这一点:

如果没有由Cpp.ignoretokensorCpp.ignoredirectives变量指定,非标准构造(通常是宏)可能会导致错误的文档。

Q_OBJECT不过不应该引起问题,因为它写得更远一点:

然而Q_OBJECT,宏是一个例外:QDoc 识别这种特殊的非标准构造,因此无需使用Cpp.ignoredirectives变量指定它。

无论如何,我确实包含qt-cpp-defines.qdocconf在我的qdocconf文件中。

我也尝试手动添加Q_OBJECT到忽略列表

但结果是一样的。

我在 Windows 10 和 Ubuntu 17 下遇到了所描述的问题。在 Windows 7 下我根本无法执行qdoc.exe

qdocconf克服这个问题的正确配置是什么?

最小的例子

为了快速复制(在实际情况下,声明和实现被拆分并添加了适当的注释),请考虑以下设置:

Foo.h

Foo.cpp

测试.qdocconf

结果

  • 好结果(没有Q_OBJECT

执行qdoc.exe test.qdocconf我或多或少得到以下信息:

内容

  • 公共职能
  • 受保护的功能
  • 详细说明

Foo 类

  • 所有成员的列表,包括继承的成员

公共职能

富()

无效嘘()

受保护的功能

无效哞()

详细说明

成员函数文档

富::富()

Default 构造一个 Foo 的实例。

无效 Foo::boo()

[受保护] 无效 Foo::moo()

  • 坏结果(带Q_OBJECT

取消注释Q_OBJECT宏并qdoc.exe再次运行会产生以下结果:

内容

  • 详细说明

Foo 类

详细说明

重要提示: Foomoo并且boo消失了。

0 投票
1 回答
549 浏览

c++ - Determine if QProcess is waiting for user input

I am working on an application (developed in Qt 5.11, toolchain MSVS2017 64bit) which will, at some point, have to execute a .bat script. This .bat script will call certain program with appropriate cmd line arguments. Script and program will reside in same directory. This program may or may not require user to press Enter at the end. If program requires user to press Enter, program would never finish unless new line character is written in stdin.

I want to check if program is waiting for user input before trying to write to its stdin, if possible using only Qt library.

The .bat script would simply call program:

From application, script would execute using QProcess:
Added spleep after start of process

I have found similar question with answer pointing to MSDN WaitForInputIdle.

In future port to Linux or Mac is possible and if it is possible I would like to avoid

Also, maybe of topic, but I am curious, is it possible to to execute .bat script from QProcess in a way that cmd/terminal window is shown along with std output?

0 投票
1 回答
707 浏览

c++ - Qt3D SceneLoader 实体未呈现

我正在尝试创建一个能够渲染包含透明对象的 obj 的 Qt3D 原型。因此,我需要以某种方式QSortPolicy与自定义框架图合并。我整理了一些在互联网上找到的示例(不幸的是,没有很多 Qt3D C++ 示例)。原型的来源如下所示。问题是我将 aQTorusMesh和 的内容添加QSceneLoader到根实体,但是在渲染时只会显示圆环,不会渲染 obj(在本例中为猴子),我不知道为什么也不知道如何调试它。我倾倒了所有的树(场景图和框架图)并且找不到任何不一致之处。我唯一能想到的就是加载的对象不知何故需要不同的渲染器(QGeometryRenderer) 哪些需要添加到框架图中?有人知道我做错了什么吗?

示例:自定义框架图场景漫游器

0 投票
1 回答
658 浏览

c++ - 将 Qt 应用程序方向修复为横向

在 windows 平台上开发基于平板电脑的 qt 应用程序。根据我们的要求,需要将应用程序修复为横向模式,但无法修复。我们使用的是 QMainWindow。

参考了几个链接来解决问题,但没有奏效。

Reference1 , Reference2:通过覆盖函数进行了尝试。

参考 3:也在我们的 qt 应用程序中尝试过这个,但没有奏效。

下面的代码是我们的示例代码:

主窗口.h

主文件

主窗口.cpp

谁能帮我解决这个问题。如果在上面的代码中做错了什么,请告诉我。

0 投票
0 回答
12 浏览

c++ - AreaSeries 仅显示悬停

我需要在使用 AreaSeries 绘制的图表(QChart)中的鼠标移动事件。在 AreaSeries 中,它仅显示“悬停”事件。如何在 AreaSeries 中获得鼠标移动事件?

我需要“鼠标移动”事件而不是 AreaSeries 中的“悬停”。

0 投票
1 回答
39 浏览

c++ - 在 linux 中发布 qt (5.11) 后 QHeaderView 部分颜色出现问题

qt 5.11 发布后 QHeaderView 部分颜色停止在 linux 中显示。在 Windows 中正常工作。有没有人遇到过这个问题?

我将 QTableView 与 QHeaderView 一起使用。我可以覆盖paintSection 函数并做一些事情来解决这个问题吗?

0 投票
0 回答
551 浏览

qt - 我可以在 qt5 中使用 QWSServer 吗?

我正在将旧的 Qt4.8 代码移植到 Qt5.11。

以下代码是用 Qt4.8 编写的。(“主.cpp”)

添加此代码以显示黑色背景并使光标在程序启动时不可见。

我知道“QWSServer”不能在 Qt5 中使用。

有没有可以用来代替“QWSServer”的类?

或者,有没有办法达到和“QWSServer”一样的效果?