Название: toolbar и widget Отправлено: nvek от Февраля 22, 2017, 06:49 Надо чтобы actionы в тулбаре становились активными и неактивными если в виджете есть чтолибо/нет ничего
какой сигнал в виджете показывает, заполнен чем либо виджет или нет? Название: Re: toolbar и widget Отправлено: __Heaven__ от Февраля 22, 2017, 07:31 Наверное, можно реализовать:
Цитировать [virtual protected] void QObject::childEvent(QChildEvent *event) This event handler can be reimplemented in a subclass to receive child events. The event is passed in the event parameter. QEvent::ChildAdded and QEvent::ChildRemoved events are sent to objects when children are added or removed. Название: Re: toolbar и widget Отправлено: nvek от Февраля 22, 2017, 08:08 Охото бы просто соединить этот слот с сигналом
connect(treeWidget, &QTreeWidget::childEvent, disconnectAct, &QAction::setEnabled); что то типо такого, конечно это не будет работать в примере qt там виджет textedit и у него сигнал copyavalible(или как то так) в коннекте сразу же соединяет со скоим актионом Название: Re: toolbar и widget Отправлено: nvek от Февраля 22, 2017, 08:15 Неужели нету сигнала который бы определял, если виджет не пустой????
Название: Re: toolbar и widget Отправлено: gil9red от Февраля 22, 2017, 08:58 Неужели нету сигнала который бы определял, если виджет не пустой???? Зачем? Виджет сам по себе не контейнер, а самостоятельная единица интерфейса Название: Re: toolbar и widget Отправлено: __Heaven__ от Февраля 22, 2017, 09:22 Виджеты - это не только сигналы и слоты, но и три, четыре килограмма различных эвентов.
А что мешает переопределить метод и посылать свои сигналы? Название: Re: toolbar и widget Отправлено: Racheengel от Февраля 22, 2017, 12:16 Неужели нету сигнала который бы определял, если виджет не пустой???? а смысл??? Название: Re: toolbar и widget Отправлено: Igors от Февраля 22, 2017, 12:53 Виджет сам по себе не контейнер, Может иметь чайлдво - стало быть контейнерНеужели нету сигнала который бы определял, если виджет не пустой???? А чем не устраивает QEvent::ChildRemoved (ChildAdded)? Ну и в слоте проверить на пустоту. Или цель вообще ничего не делать, а лишь вязать слот-сигнал веники? :)Название: Re: toolbar и widget Отправлено: gil9red от Февраля 22, 2017, 13:02 Виджет сам по себе не контейнер, Может иметь чайлдво - стало быть контейнерИ не поспоришь с таким утверждением ;D Название: Re: toolbar и widget Отправлено: __Heaven__ от Февраля 22, 2017, 13:18 Код: И не поспоришь Название: Re: toolbar и widget Отправлено: gil9red от Февраля 22, 2017, 13:59 Просто, виджет -- как "кусок бумаги". Можешь на нем нарисовать что-то, можешь сложить в определенную фигуру, можешь из него "сделать пакет" и положить в него что-то, т.е. свойства контейнера есть, ибо он базовый класс всего, но конкретным контейнером не является (делается это неявно -- через парент у детей или через компоновщики (у контейнеров ведь всегда есть определенный набор свойств и методов хотя бы: получение количества элементов, добавление и удаление элементов)). Я это так вижу и прошу не разводить срач, если оно не совпадает с вашим (или создавайте в говорилке тему).
В кнопки тоже можно что-то положить, но в дизайнере они не попадают под группу "Контейнеры", __Heaven__ :) Название: Re: toolbar и widget Отправлено: panAlexey от Февраля 22, 2017, 15:14 какой сигнал в виджете показывает, заполнен чем либо виджет или нет? Исключительно вашего собственного творения сигнал. Курим Глава 17. Основы архитектуры документ/представление (http://www.realcoding.net/articles/glava-17-osnovy-arkhitektury-dokumentpredstavlenie.html) до посинения. Название: Re: toolbar и widget Отправлено: Igors от Февраля 23, 2017, 15:32 ..но конкретным контейнером не является Может лучше сказать - не является хранилищем как vector и дрВ кнопки тоже можно что-то положить.. Кстати - а как же принцип подстановки Лисков?Название: Re: toolbar и widget Отправлено: gil9red от Февраля 23, 2017, 17:53 В кнопки тоже можно что-то положить.. Кстати - а как же принцип подстановки Лисков?Принцип подстановки Барбары Лисков (https://habrahabr.ru/post/83269/) Цитировать Итак, принцип подстановки Барбары Лисков. Он же Liskov Substitution Principle. Он же LSP. Простыми словами принцип звучит так: Наследующий класс должен дополнять, а не замещать поведение базового класса. Название: Re: toolbar и widget Отправлено: Igors от Февраля 23, 2017, 18:29 Принцип подстановки Барбары Лисков (https://habrahabr.ru/post/83269/) Как же кнопка дополняет ф-ционал базового виджета-контейнера? Засунуть кого-то в кнопку - ничего доброго не выйдет. Выходит что работает для базового не работает для потомка - а по Лисков должноЦитировать Итак, принцип подстановки Барбары Лисков. Он же Liskov Substitution Principle. Он же LSP. Простыми словами принцип звучит так: Наследующий класс должен дополнять, а не замещать поведение базового класса. Впрочем что это за принципы если их не нарушать? :) |