QML で C++ クラスからメソッドを呼び出すのが困難です。「null のメソッド 'x' を呼び出せません」というエラーが表示され続けます。これが私のコードです:
QML:
import QtQuick 2.0
import QtQuick.Controls 1.0
import QtQuick.Window 2.0
import Jane 1.0
ApplicationWindow
{
property MainWindowModel m_Model
...
Button {
id: m_PluralizeButton
text: "Pluralize"
anchors.left: parent.left
anchors.leftMargin: 10
anchors.top: m_OutputRow.bottom
anchors.topMargin: 10
onClicked: m_OutputText.text = m_Model.getPluralization();
}
}
MainWindowModel.h
class MainWindowModel : public QObject
{
Q_OBJECT
public:
MainWindowModel();
~MainWindowModel() {}
Q_INVOKABLE QString getPluralization() const;
private:
};
MainWindoModel.cpp
MainWindowModel::MainWindowModel() :
QObject()
{
}
QString MainWindowModel::getPluralization() const
{
return "Test";
}
メイン.cpp
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// Need to register types prior to loading the file.
qmlRegisterType<MainWindowModel>("Jane", 1, 0, "MainWindowModel");
QQmlApplicationEngine engine(QUrl("qrc:/root/QML/MainWindowView.qml"));
QObject* topLevel = engine.rootObjects().value(0);
QQuickWindow* win = qobject_cast<QQuickWindow*>(topLevel);
if (!win)
{
qWarning("Error: not a valid window.");
return -1;
}
win->show();
return a.exec();
}
どんな助けでも感謝します、ありがとう。