c++ - 从 QML 模态对话框中检索值的最佳方法

标签 c++ qt qt-quick

在我的 QT C++ 应用程序中,我调用了带有 2 个按钮(确定/取消)的 QML ModalDialog,它在屏幕上正确显示,所以没有问题。

但是我正在努力寻找一种方法来在我的 QT C++ 应用程序中检索哪个按钮被按下。

当我调用 QML ModalDialog 时,我无法以某种方式“卡住”,等待用户按下“确定”按钮或“取消”按钮 我看到的是应用程序调用 QML ModalDialog,并立即退出该部分并继续。

QMetaObject::invokeMethod 可以调用 QML 函数并有返回值,但它不会等待用户按下其中一个按钮,它会立即退出,所以没有用。

我想在我的应用程序的几个地方使用这个 QML ModalDialog(QML 模式 对话框可以从我的 QT C++ 应用程序中传递不同的文本),所以我一直在寻找一个通用的解决方案。

基本上和一般来说,我正在寻找这样的东西:

C/C++ return_value = QML_Modal_Dialog(....)

有人能指出我正确的方向吗?谢谢

最佳答案

QML 模态对话框带有两个信号“已接受”和“已取消”。如果您在代码中为这两个信号提供处理程序,您将能够知道按下了哪个按钮。 您可以引用以下内容。

Modal Dialog Ref 1

Modal Dialog Ref 2

希望这对您有所帮助!

关于c++ - 从 QML 模态对话框中检索值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5862458/

相关文章:

c++ - 删除链接对象

c++ - 将新项目添加到基于 QAbstractListModel 的模型时,QML View 不会更新

c++ - 在类中使用 boost::numeric::odeint

VS 2010 中的 C++ 项目

c++ - 寻找第 3 方 Qt 甘特图组件

c++ - 在 Qt 中有效地绘制物理上准确的标尺

c++ - 消息处理器 Qt

Qt Quick 与 Qt 小部件

qt - QML - 可以在单个 View 中显示 3 个 ListView

c++ - 包括 tr1::shared_ptr