草庐IT

javascript - Qt QML 中疯狂字符串数字比较的解决方法

这是Qt(LTS5.6.2)QMLJavaScript实现中疯狂的字符串与数字比较:console.log("240000000000"=="3776798720");console.log("240000000000"==="3776798720");console.log("240000000000"==="3776798721");输出是:truetruefalse看起来字符串被解释为(u)int32并且丢失了高字节:240000000000==0x37E11D60003776798720==0xE11D6000此错误也会影响对象:varg={};varh="2400000000

javascript - 如何将信号从 javascript 发送到 qml

我想从javascript文件发出信号并在qml文件中接收它(以查找耗时操作何时完成)。我该怎么做? 最佳答案 Alex和Raja的解决方案都没有真正回答这个问题。Alex的在于直接从javascript代码调用QML插槽方法,而Raja的在于从Javascript代码设置QML对象的属性值。这两种方法都否定了信号/槽机制的主要优点,即信号对象不需要知道槽。此blogpost中描述了一种更接近信号/槽机制精神的方法。(不是我的)。它包括在javascript文件中创建一个QML对象(通过Qt.createQmlObject()函数)

javascript - 使用 XMLHttpRequest 下载二进制数据,无需 overrideMimeType

我正在尝试使用XMLHttpRequest在Javascript中检索图像数据。varxhr=newXMLHttpRequest();xhr.open("GET","http://www.celticfc.net/images/doc/celticcrest.png");xhr.onreadystatechange=function(){if(xhr.readyState===4){varresp=xhr.responseText;console.log(resp.charCodeAt(0)&0xff);}};xhr.send();此数据的第一个字节应为0x89,但是任何高值字节都返回

javascript - 记住 QML 元素中的滚动位置

我有一些qml作为应用程序的输出(有点像只读控制台)。但是,使用起来很烦人,因为它在打印信息时会滚动回顶部。例如,假设我每秒向我的TextArea打印一行,大约一分钟后,我将有足够的行,现在我有一个滚动条。我滚动到底部,一秒钟后,打印了一行文本,导致它滚动回顶部。我想要的理想功能是自动滚动到底部(很像控制台打印内容时的样子),除非用户通过向上滚动来覆盖它,那么文本应该保持不变。我希望这是有道理的,这里是一些代码:ScrollArea{id:helpTextScrollAreaanchors.left:parent.leftanchors.right:parent.rightanchor

javascript - QByteArray 在 QML 中被转换成什么?

如果我有一个signal:voidfoo(QByteArraydata);我在QML中处理它:onFoo:{console.log(data.toString());}QML中的数据类型是什么?它有哪些方法?它似乎不是javascript字符串-它甚至没有.length,也没有.charCodeAt()。但它似乎也不是QByteArray-不是.at()。data[0]是undefined!它确实有.toString()。如何访问其内容?例如。如果它是一个四字节的uint32_t,我如何将该数字放入javascript变量中? 最佳答案

javascript - QML 文本字段 : Binding loop detected for property "text"

我正在使用带有JavaScript的QML。我想知道以下错误的确切含义,以便我可以修复它:QMLTextField:Bindingloopdetectedforproperty"text"有时我的应用会给我这个警告,但我不明白 最佳答案 检测到属性fooProperty的绑定(bind)循环通常意味着您可能创建了一个相互依赖的绑定(bind)。你应该检查两件事:检查fooProperty是否绑定(bind)到某个属性,该属性在某些情况下又绑定(bind)回fooProperty。(一种循环依赖)此外,请检查是否在某些情况下,fooP

javascript - QML - 将 JS 函数的代码作为字符串获取

似乎可以在JavaScript中获取函数的代码,而且非常简单:functionfoo(){...}foo.toString()但是,在QML中这样做给我带来了一个相当乏味的function(){[code]}那么有没有办法也得到[code]部分呢?我也试过JSON.stringify()但没有任何效果。 最佳答案 我想总结一下评论中的讨论,因为这可以作为future搜索的一个很好的回应。如评论中所述,它看起来是QML的一个明显错误。Here他们声称:theQMLruntimeimplementstheECMAScriptLangua

javascript - 如何在 QML 中访问 ListView 的 ListModel 的 ListElement 的映射委托(delegate)数据?

本质上,我有一个普通的ListView:Rectangle{id:mylistListModel{id:mylistModelListElement{text:"blah1"}ListElement{text:"blah2"}ListElement{text:"blah3"}}Component{id:mylistDelegateText{id:mylistDelegateTexttext:textpropertyboolmylistDelegateTextEnabled:false}}ListView{id:mylistViewmodel:mylistModeldelegate:my

javascript - 在 QML 中解析 JSON

这个问题在这里已经有了答案:CanIuseJavaScripttogetJSONdatafromtheserverinsidemyqtapp?(3个答案)关闭5年前。相关的Qt文档应该是this.但它没有提到QML。然而,在网络上的许多地方,我发现在QMLJS中使用了诸如JSON.parse之类的函数。有没有这样的功能,如何使用?我只是要求提供指向文档的链接,但这在此处被认为是题外话。

javascript - QML:Lambda 函数意外运行

我认为QML支持lambda函数是因为JavaScript支持匿名函数以及函数是一流对象这一事实,但它们并不像我预期的那样工作。拿这段代码:Item{propertyvaritems:[]functionhandler(item){console.log(item);}Component.onCompleted:{for(vari=0;i我正在尝试使用lambdafunction(){handler(item);}这样,当发出someObj::someValueChanged信号时,发射项将传递给handler(item)函数。我假设每个循环都会创建一个新的lambda实例,并且ite