1

Qt documentationに記載されているアプローチに従って、Qml から C++ 関数を呼び出せるようにしています。

これには、次の条件のいずれかを満たす必要があります。

  1. C++ 関数publicおよびQ_INVOKABLE またはを作成します。
  2. C++ 関数をpublic slot

これは、私のクラスの設計と同期していないことがあります。のように、Qml から呼び出し可能にしたい関数は、クラス設計に従ってプライベートです。

Q1. 関数を Qml から見えるようにして、それを非公開のままにすることはできますか?

Q2. この種の動作を期待するのは私の設計上の欠陥ですか?

4

1 に答える 1

4

ええと、設計上プライベートなものを行うと、それはクラス内でのみ使用されるものと見なされます。今、あなたが実際に尋ねているのは、私のデザインを回避するにはどうすればよいかということです。明らかな答えは、プライベート メソッドを呼び出し、このパブリック ラッパーを QML に公開するクラスでパブリック ラッパーを作成することができますが、そのような状況に直面した場合は設計を見直すことをお勧めします。

于 2013-04-22T07:48:05.610 に答える