2013-04-22 2 views
0

Я делаю свои функции C++ вызываемыми из Qml, следуя подходу, указанному в Qt documentation.Сделать частную функцию C++ видимой для Qml

Это потребует одного из этих условий, которые должны быть выполнены:

  1. Сделать C++ функцию public и Q_INVOKABLE или
  2. сделать C++ функция а public slot

Это иногда не синхронизированы с моим классом. Как и в, функция, которую я хочу вызывать из Qml, является частной в соответствии с моим дизайном класса.

Q1. Могу ли я сделать функцию видимой для Qml и все еще держать ее закрытой?

Q2. Является ли мой недостаток в дизайне ожидать такого поведения?

ответ

2

Ну, если вы что-то сделали частный по дизайну вы считаете, что это что-то, что можно использовать только внутри класса. Теперь вы сейчас спрашиваете, как я могу обойти мой дизайн. Очевидный ответ - вы можете сделать общедоступную оболочку в классе, который будет вызывать ваш частный метод и публиковать эту общедоступную оболочку в QML, но я бы предложил рассмотреть дизайн, если вы столкнулись с такой ситуацией.