このプログラムはサイレントモードで失敗し、デバッグモードまたはリリースモードではメッセージは表示されず、ウィンドウは表示されませんが、タスクマネージャで実行中のprogram.exeが表示されます。何が起こっている ?どのようにそれを修正するには?それはなぜ失敗するのですか?なぜメッセージが表示されないのですか?QML ListViewのモデルとしてC++ QStringListをロードするこの方法で何が問題になりますか?
QMLインタフェースファイル
//main.qml
import QtQuick 2.5
ListView {
width: 100; height: 100
model: myModel
delegate: Rectangle {
height: 25
width: 100
Text { text: modelData }
}
}
は、C++、メインファイル
// main.cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QStringList dataList;
dataList.append("item 1");
dataList.append("item 2");
dataList.append("item 3");
dataList.append("item 4");
dataList.append("item 5");
QQmlApplicationEngine engine;
engine.rootContext()->setContextProperty("myModel",QVariant::fromValue(dataList));
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
これは私の愚かなように見える、あなたの迅速な対応に感謝します。 –
ウィンドウがデフォルトで表示されないのはなぜですか? –
私は、QMLビューで動作するモデルクラスを設計できるようにしたいと考えています。私はそれらを作ってコンソールアプリケーションの下でそれらをテストすることはできますか?モデルクラスをテストするために作られた準備ができたコンソールクラスがありますか? –