Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux上的多个qml窗口无法正确刷新 我试图做的是创建几个QML窗口,并通过C++(槽信号)改变它们的内容。我现在遇到的问题是,虽然qml内容(如文本)已更新,但没有正确地重新绘制_C++_Linux_Qt_Qml - Fatal编程技术网

linux上的多个qml窗口无法正确刷新 我试图做的是创建几个QML窗口,并通过C++(槽信号)改变它们的内容。我现在遇到的问题是,虽然qml内容(如文本)已更新,但没有正确地重新绘制

linux上的多个qml窗口无法正确刷新 我试图做的是创建几个QML窗口,并通过C++(槽信号)改变它们的内容。我现在遇到的问题是,虽然qml内容(如文本)已更新,但没有正确地重新绘制,c++,linux,qt,qml,C++,Linux,Qt,Qml,结果如下所示: 然而,只有一个窗口,一切都很好 我使用的是Qt5.5.0+Xubuntu 14.04 所以问题是:如何强制这些窗口正确刷新 如何再现的最小示例: main.cpp: #include <QGuiApplication> #include <QQmlApplicationEngine> #include "myclass.h" int main(int argc, char *argv[]) { QGuiApplication app(argc,

结果如下所示:

然而,只有一个窗口,一切都很好

我使用的是Qt5.5.0+Xubuntu 14.04

所以问题是:如何强制这些窗口正确刷新

如何再现的最小示例:

main.cpp:

#include <QGuiApplication>
#include <QQmlApplicationEngine>

#include "myclass.h"

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    MyClass obj(engine);

    return app.exec();
}

编辑:顺便说一句,它在我的Mac电脑上工作得完美无缺,所以我想这是一个与平台相关的问题。

最后我发现了问题所在:我的OpenGL版本不合适。我按照此处发布的说明解决了问题:
这为我的应用程序提供了一个更新的版本,现在它运行得更好了,尽管不是很好(有时刷新会停留很短时间,但我认为这是我能得到的最好的atm)。

最后我发现了问题所在:我的OpenGL版本不合适。我按照此处发布的说明解决了问题:
这为我的应用程序提供了一个更新的版本,现在它运行得更好了,尽管不是很好(有时刷新会停留很短时间,但我认为这是我能得到的最好的atm)。

。。。我认为加载同一根
QML
文件两次是个坏主意。这里的根项目是什么?尝试在同一个
QQmlApplicationEngine
上创建几个
QQuickView
对象。Qt 5.5.0似乎不太支持linux。我的Mint在运行qml时遇到内存泄漏。昨晚,我尝试了发射器的例子,然后机器就坏了。所以,也许你可以试试Qt5.4.2Hmm。。。我认为加载同一根
QML
文件两次是个坏主意。这里的根项目是什么?尝试在同一个
QQmlApplicationEngine
上创建几个
QQuickView
对象。Qt 5.5.0似乎不太支持linux。我的Mint在运行qml时遇到内存泄漏。昨晚,我尝试了发射器的例子,然后机器就坏了。所以,也许你可以试试Qt5.4.2
#ifndef MYCLASS_H
#define MYCLASS_H

#include <QObject>
#include <QQmlApplicationEngine>
#include <QQmlContext>


class MyClass : public QObject
{
    Q_OBJECT
public:

    explicit MyClass(QQmlApplicationEngine& engine) : QObject()
    {
        engine.rootContext()->setContextProperty("myObj", this);
        engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
        engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

        startTimer(400);
    }

    void timerEvent(QTimerEvent *e)
    {
        static int i = 0;
        emit intIncreased(++i);
    }

signals:
    void intIncreased(int myint);
};

#endif // MYCLASS_H
import QtQuick 2.5
import QtQuick.Window 2.2

Window {
    visible: true

    Connections {
        target: myObj
        onIntIncreased: myText.text = myint
    }

    Text {
        id: myText
        font.pixelSize: 100
        anchors.centerIn: parent
    }
}