我的Qt GUI应用程序中有一个实用程序类.但是,在我的便利课中,我想调用一个QMessageBox::critical(),warning()等等.该类不是a QWidget,因此我不能this作为父级传递.QObject然而,我的类是子类,因此它可以运行诸如信号和插槽之类的东西.因此,要解决这个问题 - 如果可能的话 - 我是否应该查看属性API而不是使用静态API?
舱位声明:
class NetworkManager : public QObject
Run Code Online (Sandbox Code Playgroud)
这是一个失败的静态API调用的示例:
QMessageBox::critical(this, tr("Network"), tr("Unable to connect to host.\n"),
QMessageBox::Ok | QMessageBox::Discard);
Run Code Online (Sandbox Code Playgroud)
那么,如果我要构建一个基于Property的API消息框,是否可以以QObject某种方式调用它?我还没有真正使用过基于属性的API,但我从文档中了解到它似乎使用了一个事件循环(即exec()).