我想将一些参数从 C++ 传递到 QML,以便 QML 可以用它们做一些事情。
有点像这样:
void MyClass::myCplusplusFunction(int i, int j)
{
emit mySignal(i, j);
}
Run Code Online (Sandbox Code Playgroud)
在 QML 中,每次mySignal(i, j)发出时,我都想调用 QML 函数并使用i和执行操作j。
Connections {
target: myClass
// mySignal(i, j) is emitted, call myQmlFunction(i,j)
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
我有一个 QtQuick 应用程序。当用户试图关闭应用程序时,我想要一个“你确定吗?” 窗口弹出。
我的主要 C++ 类有这个:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
我的主 QML 类有一个应用程序窗口:
ApplicationWindow {
id: root
...
}
Run Code Online (Sandbox Code Playgroud)
我将在哪里以及如何捕捉关闭事件?我读到了从 QMainWindow 方法或其他方法覆盖 closeEvent() 的内容,但我没有 QMainWindow 并且我不知道将该代码放在哪里。
所以我想知道如何防止应用程序关闭并发生其他事情,以及当用户在确认对话框中单击“确定”时我将如何关闭应用程序。
据我所知,ApplicationWindow 的“onClosing”只允许我在不可避免的关闭之前做一些清理,但它不会阻止关闭(如果我错了,请纠正我)