小编e.j*_*dar的帖子

文本更改动画

有没有动画文本更改的东西?已经有用于属性更改的动画,例如此代码为属性不透明度、宽度和比例执行动画,并且每当它们由状态更改时,它们将获得动画。

NumberAnimation {
    properties: "opacity, width, scale, visible"
    easing.type: Easing.OutBack; duration:500
}
Run Code Online (Sandbox Code Playgroud)

但是我没有找到任何文本更改,例如从 N 到 N+1 计数变得动画(例如,淡出旧值并淡出新值)。我如何动画文本更改?

qt qml qt-quick qtquick2

5
推荐指数
1
解决办法
4221
查看次数

在qrc和qml文件的本地路径之间切换

据我所知,qml文件可以从本地目录路径加载,也可以捆绑在qrc文件中并加载qrc:/ URI.在调试阶段,更改本地qml文件不需要重新编译qrc文件并与主可执行文件链接在一起,这是尝试和错误微调的快速过程.但是在部署阶段,qml文件应该作为qrc文件捆绑在一起并链接到主C++ Qt应用程序.当您想要单个可执行文件时,这是一个很好的做法,但是编译qrc文件并再次链接它对于大型项目来说非常耗时.有什么办法可以切换到qrc或本地目录吗?例如在调试和发布模式下?

项目中有许多qml组件,所有这些组件都是由另一个qml文件中的qrc:/componenentname.qml之类的URI创建的.

那么有没有办法在调试和发布模式下交换这两种状态,并保持qml文件没有重复更改?

qt qml

3
推荐指数
1
解决办法
1840
查看次数

获取列表视图委托qml的可见性状态

我正在开发聊天系统,我有一个对话页面,里面有一个列表视图,列表视图代表是文本对话。我想将可见/未见或已读/未读添加到对话委托,由自定义模型提供的列表视图,我需要类似委托附加属性的东西,该属性在实际查看委托时会发生变化。是否有任何附加属性可以告诉我每个委托项目的可见性状态?

qml

3
推荐指数
1
解决办法
2651
查看次数

将 QJsonObject 转换为 Javascript 对象

由于 qt 文档上的QJSValueQJsonObjectinst 不能隐式转换为QJSValue,我想QJSEngine从 C++ 调用一个 javascript 函数,参数应该传递到QList<QJsValue>调用另一个QJSValue保存函数本身的函数。

问题是我的一个论点是QJsonObject,到目前为止,我应该将其转换为文本,然后调用并将其传递给调用将JSON.parse其转换为对象的 javascript 函数,我正在寻找一种解决方案,让我可以将其转换QJsonObjectQJSValueC++并使用对象参数而不是 json 文本调用 javascript 函数。

目前代码如下

QJsonObject obj;
obj["1"] = QString("A");
obj["2"] = QString("B");

QJSValue func = myEngine.evaluate("(function(arg) { var obj = JSON.parse(arg); var res = obj[\"1\"] + obj[\"2\"]; return res; })");
QJSValueList args;
args << QString(QJsonDocument(obj).toJson());
QJSValue res = func.call(args);
Run Code Online (Sandbox Code Playgroud)

我想要一个像QJSValue ConvertToQJSValue(QJsonObject object)这样的函数:

QJsonObject obj;
obj["1"] = …
Run Code Online (Sandbox Code Playgroud)

javascript c++ qt qjsengine

1
推荐指数
1
解决办法
1953
查看次数

与matlab相比,获得三角函数的正确值

我试图用它的c ++代码测试一个simulink块,simulink块包含一些algebratic,三角函数和积分器.在我的测试过程中,从simulink块输入使用随机数生成器,输入和输出都被记录到mat文件中(使用MatIO),将由C++代码读取,输出与C++计算得到.对于仅包含代数函数的信号,结果是精确的,差值为零,对于包含三角函数的路径,差值约为10e-16.matlab社区声称他们是正确的而glibc不是.

最近我发现在glibc中实现的三角函数的输出值不等于matlabs中产生的值,根据旧问题1 2 3和我的实验,这些差异与1 glp> glibc的准确性有关.对于大多数块而言,这个10e-16误差感觉不大,但是在积分器的输出中,10e-16积累的越来越多,积分器的最终误差将是大约1e-3,这有点高,这种阻止是不可接受的.

经过对该问题的大量研究后,我决定使用其他方法来计算sin/cos函数,而不是glibc中提供的函数.

我实施了这些apporaches,

1-泰勒系列具有长双变量和-O2(强制使用x87 FPU及其80位浮点运算)

2-taylor系列与GNU quadmath库(128位精度)

3个MPFR库(128位)

4- CRLibm(正确舍入的libm)

5- Sun的LibMCR(就像CRLibm一样)

6- X86 FSIN/FCOS具有不同的舍入模式

7- Java.lang.math到JNI(我认为matlab使用)

8-fdlibm(根据我见过的一篇博文)

9- openlibm

10-通过mex/matlab引擎调用matlab函数

除了最后一个以外的实验不能生成等于matlab的值.我测试了所有这些库和方法的广泛输入,其中一些像libmcr和fdlibm将为一些输入产生NAN值(看起来他们没有良好的范围检查),其余的产生值错误10e-16及更高.与matlab相比,只有最后一个产生正确的值,但是调用matlab函数并不比本机实现快得多且慢得多.

另外我还说为什么MPFR和泰勒系列长双重和四重奏都出错了.

这是具有长双变量(80位精度)的泰勒系列,并且应该用-O2编译,这可以防止将FPU堆栈中的值存储到寄存器中(80位到64位=精度损失),在进行任何计算之前,还将设置x87的舍入模式到最近的

typedef long double dt_double;

inline void setFPUModes(){
    unsigned int mode = 0b0000111111111111;
    asm(

    "fldcw %0;"
    :  : "m"(mode));
}
inline dt_double factorial(int x)  //calculates the factorial
{
    dt_double fact = 1;   
    for (; x >= 1 ; x--)
        fact = x * fact;
    return fact;
}

inline dt_double …
Run Code Online (Sandbox Code Playgroud)

c++ floating-point matlab mpfr ieee-754

1
推荐指数
1
解决办法
237
查看次数

标签 统计

qml ×3

qt ×3

c++ ×2

floating-point ×1

ieee-754 ×1

javascript ×1

matlab ×1

mpfr ×1

qjsengine ×1

qt-quick ×1

qtquick2 ×1