У меня есть объект, которому принадлежит X (владеет указатели и инициализирует) Объекты Y1..10Qt: стиль относительно сигналов/слотов
Объект Х имеет состояние, которое изменяет время от времени. Я хочу, чтобы дочерние объекты (Y1..10) узнали о состоянии.
Как правило, это разрешимо путем указания указателя на родительский X из каждого Y-дочернего объекта, чтобы он мог запросить свой статус с помощью вызова метода, но я не хочу, чтобы объекты Y были осведомлены об объекте X , только его статус.
мне было интересно, если это может быть реализовано с сигналами/слотов:
Объекты Y будет определять сигнал, такой как:
void GetStatus(TheStatus & status);
Объект Х будет подключить к пазу, и когда излучаемый объектом Y, объект X будет записывать статус на указанную ссылку состояния, чтобы получить объект Y.
Таким образом, я могу иметь обновления статуса для объектов Y, и тем не менее им не нужно знать об объекте X, чтобы достичь этого.
Как вы думаете?
Я использую doBlah() для приемника, который реагирует на события, как кнопка нажмите и обновитеBlah() для обновления некоторой части gui –
@MartinBeckett В строке выполнения есть 'setValue()', но я не знаю, лучше ли это или хуже, чем 'updateValue()'. «set» может показаться немного легким для функции, которая обновляет элемент GUI, но я вижу это в обоих направлениях. В любом случае это лучше, чем 'onValueChanged()' - который звучит так же, как имя для сигнала, как для слота. – HostileFork
Не имеет значения, как вы их называете. Вам просто нужно иметь какое-то соглашение, чтобы держать функции сигнала/слота прямо в голове, потому что компилятор ничего не делает для его принудительного применения. –