Qt GUI アプリケーションにユーティリティ クラスがあります。QMessageBox::critical()ただし、私の便利なクラスでは、warning()、などを呼び出したかったのです。クラスは ではないため、親としてQWidget渡すことはできません。thisただし、私のクラスは からサブクラス化されQObjectているため、シグナルやスロットなどを実行できます。これを回避するには、可能であれば、静的 API を使用する代わりに、プロパティ API を確認する必要がありますか?
クラス宣言:
class NetworkManager : public QObject
失敗する静的 API 呼び出しの例を次に示します。
QMessageBox::critical(this, tr("Network"), tr("Unable to connect to host.\n"),
QMessageBox::Ok | QMessageBox::Discard);
では、プロパティ ベースの API メッセージ ボックスを作成する場合、何らかの方法でそれを呼び出すことは可能でしょうQObjectか? プロパティ ベースの API を実際に使用したことはありませんが、ドキュメントから、イベント ループ (つまりexec()) を使用しているように見えることは理解しています。