问题标签 [qt5.3]

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 投票
1 回答
2491 浏览

c++ - 源更改后 QML 图像未更新

我正在使用 Qt Quick 2,并且希望在通过单击图像更改源时更新 QML 图像。但不能让它发生。

有一些类似的问题,但这些解决方案并没有给我带来任何乐趣。两个图像都添加到解决方案中,我可以将图像设置为任何一个。更改源后无法更新图像。

提前致谢

我也尝试过通过父母更新它。

0 投票
2 回答
8731 浏览

qt - QML ListView 方法 positionViewAtEnd() 完全相反

我要疯了。我在 ScrollView 中有一个 ListView,连接到一个继承 QAbstractListModel 的模型。当对象被添加到模型中时,ListView 使用委托显示它们。到目前为止,一切都很好。

但我真的希望视图保持滚动到底部(就像聊天窗口一样),而且我很难做到这一点。这是相关的 QML 代码:

真正奇怪的是messageList.positionViewAtEnd()(在文件末尾)实际上将其跳转到开头。如果没有调用,视图将保持在原来的位置,即使新条目出现在列表中也是如此。事实上,如果你查看ListView.positionViewAtEnd() 的 Qt 文档,它会说:

将视图定位在开头或结尾,考虑到...

这是文档中的愚蠢错误,还是什么?我已经尝试了我能想到的一切来完成这项工作,特别是positionViewAtIndex()使用荧光笔强制滚动发生的方法和使用荧光笔。但没有任何效果。注意/* This works. */上面源代码中的注释。启用后,它工作得很好!(当然,除了它跳转到 ListView.count()-2 索引,而不是列表的末尾)

有谁知道这里可能出了什么问题?我可以尝试证明 QML 中有一个可怕的、可怕的错误的任何例子吗?

我将 Qt 5.3.1 与 QtQuick 2.0 一起使用(或者 2.1 或 2.2 也失败了)。我也尝试了很多很多其他配置和代码,所以请询问您是否需要更多信息。我已经完全用尽了我的 google-fu。

谢谢!


编辑 1

虽然接受的答案确实解决了上述问题,但它涉及将 添加Component.onCompleted到委托中。当您滚动列表时,这似乎会导致问题,因为(我相信)当您向上滚动时,代表会添加到视图中,即使模型项不是新的,也会导致调用 onCompleted 触发器。这是非常不希望的。事实上,当我尝试向上滚动然后向列表中添加新元素时,应用程序会冻结。

似乎我需要一个 model.onAdd() 信号,而不是使用委托实例的存在来触发滚动。有任何想法吗?


编辑 2

这怎么行?

文本“这打印正确”打印,为什么它不定位?实际上,它似乎将位置重置为顶部。所以我尝试positionViewAtBeginning()了,但做了同样的事情。

我完全被难住了。感觉是个bug。

0 投票
1 回答
1476 浏览

qml - 在 GridLayout 中移动对齐的项目

我有一个 2x2 网格布局。所有项目都左对齐,每列占据 50% 的空间。

现在我想将 GridLayout 的 4 个项目之一向右移动 20 像素。我该怎么做?

0 投票
0 回答
317 浏览

android - Qt的QInputEvent时间戳:ulong vs int64_t on android

QInputEvent'stimestamp()方法“返回此事件的窗口系统时间戳。” 返回类型是ulong, 并且包含毫秒,但 android 上的本机时间戳是int64_t并且包含纳秒。

我可以为 Qt 中的事件获取具有微秒或纳秒分辨率的时间戳吗?

我找不到QInputEvent在 Android 上设置时间戳的源代码。它在哪里?也许我可以修补 Qt 以获得带有纳秒时间戳的额外字段。

0 投票
1 回答
709 浏览

c++ - QtConcurrent 在 reportResultsReady 上崩溃

背景

在我的 Qt5.3 应用程序中,我处理了几个耗时的过程(统计计算)。为了能够在运行一个或多个计算时使用应用程序,我创建了一个名为ProgressManager的类。此管理器注册从抽象类IRunnable继承并实现纯虚拟方法run的计算对象。

每次启动一个新的耗时操作时,都会在与其进度条相连的ProgressManager中注册,并通过以下函数启动:

并行进程完成后,应调用以下函数:

问题

一切都运行顺利,直到并行化过程结束。然后在调用完成信号和句柄完成槽之前,应用程序每次都因分段错误而崩溃。

崩溃报告在文件 qfutureinterface.h 的第 211 行的函数reportResults中,其中函数是reportResultsReady调用:

0 投票
3 回答
2601 浏览

qt - QMessageBox 的翻译在 Qt5.3 中不起作用

我是Qt的粉丝,经常更新,Qt5.1->5.2->5.3。

但是,标准按钮(如“确定”“取消”“保存”)的翻译在 Qt5.3 中不再起作用。它们没有翻译,只是简单的英语。

翻译代码不会随着 Qt 的每个版本而改变。喜欢:

任何想法?

[更新] AFAIN,这可能是一个错误。如果你不必在新的 Qts 中使用一些改进,那么回到 Qt5.1 是一个解决方案。

0 投票
3 回答
3393 浏览

c++ - 确保使用 qRegisterMetaType() 注册“QAbstractSocket::SocketState”

我试图将QWebSocket连接放入QThread

程序编译没有错误,运行正常,但是当它尝试连接到websocket服务器时抛出这个错误:

QObject::connect: 不能对“QAbstractSocket::SocketState”类型的参数进行排队(确保使用 qRegisterMetaType() 注册了“QAbstractSocket::SocketState”。)

当我做

没有线程连接工作正常。

有任何想法吗?

0 投票
2 回答
2390 浏览

opengl-4 - OpenGL 4.1 和 Qt 5 的严重渲染问题

我已经看到了一些关于能够在现代 OpenGL 上运行 Qt5 的有希望的参考资料。我正在使用以下代码将我的 QQuickView 设置为 OpenGL 4.1 Core(我的 MacBook 上 OSX 10.9 支持的最新版本)。

大部分问题。首先,应用程序在尝试渲染文本时完全崩溃。如果我碰巧在我的 QML 中只有图像、矩形等,我会得到大量的片段着色器错误。

Qt5.3 还没有为现代 OpenGL 做好准备吗?还是我只是设置不正确?我想使用 OpenGL 4 嵌入我自己的 OpenGL 图形窗口,所以我的假设是我也需要在 GL 4 下运行该应用程序。还有其他方法吗?

0 投票
1 回答
6832 浏览

qt - QlistView setCurrentIndex() not working

I am facing a problem with a QListView component.

I created a simple form with a listview and a tableview. Then I put this code, both widgets populate with the data model as I want:

The first slot (when I click any item in the listview widget) works as expected, it automatically selects the corresponding item in the tableview widget, but the second case does not work, it just does not select any item in the listview...

What I want is that whatever item the user clicks in the tableview gets selected in the listview.

Is it possible? I tried hard, looking for examples and the official qt documentation, but I don't find the right way to do (also tried to connect with signal/slots, but I don't know how to exactly connect both widgets).

Thanks in advance.

0 投票
1 回答
466 浏览

qt - QML 地图绑定

我在 Qt 中完全是菜鸟,所以我的问题可能听起来太愚蠢了,但我真的需要帮助。我知道一点 C++,就是这样。

所以,我的任务是编写一个读取类似 INI 文件的 C++ 程序(我可以这样做,但不确定最正确/Qt 方式)

或者

如果属性应该是强类型的。文件格式不是很重要。为了清楚起见,我不知道将在此文件中定义哪些属性,在编译时我不知道名称或类型。

在该程序加载 QML 文件(我可以这样做)并将加载的文件数据(不知道如何执行此操作)作为 JavaScript 对象注入之后,例如名为“设置”,以便 QML 属性绑定将使用它

所以问题是:

  1. 读取类似 INI 的文件的最正确/qt 风格的方法是什么?
  2. 如何将读取数据作为 JavaScript 对象注入 QML,以便 QML 属性绑定使用它?