Russian Qt Forum
Ноябрь 24, 2024, 05:34
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
toolbar и widget
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: toolbar и widget (Прочитано 7961 раз)
nvek
Гость
toolbar и widget
«
:
Февраль 22, 2017, 06:49 »
Надо чтобы actionы в тулбаре становились активными и неактивными если в виджете есть чтолибо/нет ничего
какой сигнал в виджете показывает, заполнен чем либо виджет или нет?
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: toolbar и widget
«
Ответ #1 :
Февраль 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.
Записан
nvek
Гость
Re: toolbar и widget
«
Ответ #2 :
Февраль 22, 2017, 08:08 »
Охото бы просто соединить этот слот с сигналом
connect(treeWidget, &QTreeWidget::childEvent, disconnectAct, &QAction::setEnabled);
что то типо такого, конечно это не будет работать
в примере qt там виджет textedit и у него сигнал copyavalible(или как то так)
в коннекте сразу же соединяет со скоим актионом
Записан
nvek
Гость
Re: toolbar и widget
«
Ответ #3 :
Февраль 22, 2017, 08:15 »
Неужели нету сигнала который бы определял, если виджет не пустой?
Записан
gil9red
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1805
Re: toolbar и widget
«
Ответ #4 :
Февраль 22, 2017, 08:58 »
Цитата: nvek от Февраль 22, 2017, 08:15
Неужели нету сигнала который бы определял, если виджет не пустой?
Зачем? Виджет сам по себе не контейнер, а самостоятельная единица интерфейса
Записан
https://github.com/gil9red
https://ru.stackoverflow.com/users/201445/gil9red
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: toolbar и widget
«
Ответ #5 :
Февраль 22, 2017, 09:22 »
Виджеты - это не только сигналы и слоты, но и три, четыре килограмма различных эвентов.
А что мешает переопределить метод и посылать свои сигналы?
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: toolbar и widget
«
Ответ #6 :
Февраль 22, 2017, 12:16 »
Цитата: nvek от Февраль 22, 2017, 08:15
Неужели нету сигнала который бы определял, если виджет не пустой?
а смысл???
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: toolbar и widget
«
Ответ #7 :
Февраль 22, 2017, 12:53 »
Цитата: gil9red от Февраль 22, 2017, 08:58
Виджет сам по себе не контейнер,
Может иметь чайлдво - стало быть контейнер
Цитата: nvek от Февраль 22, 2017, 08:15
Неужели нету сигнала который бы определял, если виджет не пустой?
А чем не устраивает QEvent::ChildRemoved (ChildAdded)? Ну и в слоте проверить на пустоту. Или цель вообще ничего не делать, а лишь вязать слот-сигнал веники?
Записан
gil9red
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1805
Re: toolbar и widget
«
Ответ #8 :
Февраль 22, 2017, 13:02 »
Цитата: Igors от Февраль 22, 2017, 12:53
Цитата: gil9red от Февраль 22, 2017, 08:58
Виджет сам по себе не контейнер,
Может иметь чайлдво - стало быть контейнер
И не поспоришь с таким утверждением
Записан
https://github.com/gil9red
https://ru.stackoverflow.com/users/201445/gil9red
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: toolbar и widget
«
Ответ #9 :
Февраль 22, 2017, 13:18 »
Код:
И не поспоришь
Ну да
Записан
gil9red
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1805
Re: toolbar и widget
«
Ответ #10 :
Февраль 22, 2017, 13:59 »
Просто, виджет -- как "кусок бумаги". Можешь на нем нарисовать что-то, можешь сложить в определенную фигуру, можешь из него "сделать пакет" и положить в него что-то, т.е. свойства контейнера есть, ибо он базовый класс всего, но конкретным контейнером не является (делается это неявно -- через парент у детей или через компоновщики (у контейнеров ведь всегда есть определенный набор свойств и методов хотя бы: получение количества элементов, добавление и удаление элементов)). Я это так вижу и прошу не разводить срач, если оно не совпадает с вашим (или создавайте в говорилке тему).
В кнопки тоже можно что-то положить, но в дизайнере они не попадают под группу "Контейнеры",
__Heaven__
Записан
https://github.com/gil9red
https://ru.stackoverflow.com/users/201445/gil9red
panAlexey
Гипер активный житель
Offline
Сообщений: 864
Акцио ЗАРПЛАТА!!!!! :(
Re: toolbar и widget
«
Ответ #11 :
Февраль 22, 2017, 15:14 »
Цитата: nvek от Февраль 22, 2017, 06:49
какой сигнал в виджете показывает, заполнен чем либо виджет или нет?
Исключительно вашего собственного творения сигнал.
Курим
Глава 17. Основы архитектуры документ/представление
до посинения.
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
http://trdm.1gb.ru/
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: toolbar и widget
«
Ответ #12 :
Февраль 23, 2017, 15:32 »
Цитата: gil9red от Февраль 22, 2017, 13:59
..но конкретным контейнером не является
Может лучше сказать - не является хранилищем как vector и др
Цитата: gil9red от Февраль 22, 2017, 13:59
В кнопки тоже можно что-то положить..
Кстати - а как же принцип подстановки Лисков?
Записан
gil9red
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1805
Re: toolbar и widget
«
Ответ #13 :
Февраль 23, 2017, 17:53 »
Цитата: Igors от Февраль 23, 2017, 15:32
Цитата: gil9red от Февраль 22, 2017, 13:59
В кнопки тоже можно что-то положить..
Кстати - а как же принцип подстановки Лисков?
Принцип подстановки Барбары Лисков
Цитировать
Итак, принцип подстановки Барбары Лисков. Он же Liskov Substitution Principle. Он же LSP. Простыми словами принцип звучит так:
Наследующий класс должен дополнять, а не замещать поведение базового класса.
Записан
https://github.com/gil9red
https://ru.stackoverflow.com/users/201445/gil9red
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: toolbar и widget
«
Ответ #14 :
Февраль 23, 2017, 18:29 »
Цитата: gil9red от Февраль 23, 2017, 17:53
Принцип подстановки Барбары Лисков
Цитировать
Итак, принцип подстановки Барбары Лисков. Он же Liskov Substitution Principle. Он же LSP. Простыми словами принцип звучит так:
Наследующий класс должен дополнять, а не замещать поведение базового класса.
Как же кнопка дополняет ф-ционал базового виджета-контейнера? Засунуть кого-то в кнопку - ничего доброго не выйдет. Выходит что работает для базового не работает для потомка - а по Лисков должно
Впрочем что это за принципы если их не нарушать?
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...