Russian Qt Forum
Ноябрь 25, 2024, 18:01
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Подобие талицы из виджетов
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Подобие талицы из виджетов (Прочитано 5378 раз)
kdm
Гость
Подобие талицы из виджетов
«
:
Август 01, 2010, 13:30 »
Вот другой вопрос меня очень волнует, как делать. Примерно представляю, но кажется слишком криво получится.
Дело в том, что хотел сделать одностолбцовую таблицу, в которой элементы - обычные виджеты, хранящие в себе другие виджеты (как на рисунке). И при том, когда пользователь кликает на любой элемент внутри виджета или на сам виджет, он бы выделялся цветной рамкой. Как так сделать? Как перехватить события о клике на элемент внутри виджета?
Записан
Makss
Гость
Re: Подобие талицы из виджетов
«
Ответ #1 :
Август 01, 2010, 13:35 »
через QScrollArea можно всё это сделать
Записан
kdm
Гость
Re: Подобие талицы из виджетов
«
Ответ #2 :
Август 01, 2010, 15:02 »
Ну да, QScrollArea будет, но у меня проблемма с выделением так называемых айтемов этой таблицы, которые представляют собой самостоятельные виджеты. Как перехватывать событие клика на виджет и контролы внутри его и выделять виджет рамкой?
Записан
ecspertiza
Супер
Offline
Сообщений: 1053
С уважением, мастер конфетного цеха!
Re: Подобие талицы из виджетов
«
Ответ #3 :
Август 01, 2010, 16:33 »
Вот держи демку, не таблица ,но принцип похожий можно будет сделать.
Записан
kdm
Гость
Re: Подобие талицы из виджетов
«
Ответ #4 :
Август 02, 2010, 10:44 »
Спасибо за пример. А как отлавливать событие того, чтобы кликнут компонент внутри видже (который представляет собой ячейку) без installEventFilter? Мне это нужно, если к примеру внутри виджета динамически добавляются новые компоненты, то для них тоже нужно устанавливать installEventFilter. А как обойтись без лишнего кода?
Записан
ufna
Гость
Re: Подобие талицы из виджетов
«
Ответ #5 :
Август 02, 2010, 14:11 »
просто внутри этого виджета-айтема ловить клик, и менять ему стейт клика.
Записан
kdm
Гость
Re: Подобие талицы из виджетов
«
Ответ #6 :
Август 02, 2010, 17:00 »
Сделал обратку клика в виджете-айтеме. Но если в виджет-айтем добавить QLineEdit, то клик перехватывается и ивент не выходит. Пробовал сделать с FocusPolicy. При клике на лейбел все робит, при клике на QLineEdit, снова LineEdit перехватывает ивент о фокусе. Не знаю, что и делать.
Записан
ufna
Гость
Re: Подобие талицы из виджетов
«
Ответ #7 :
Август 02, 2010, 19:07 »
ловить момент передачи фокуса у всех виджетов-дитенышей?
Записан
kdm
Гость
Re: Подобие талицы из виджетов
«
Ответ #8 :
Август 02, 2010, 20:51 »
придется переопределять классы, чтобы те генерили сигнал gotFocus? В принципе можно, но хотелось бы сделать универсально.
«
Последнее редактирование: Август 02, 2010, 22:24 от kdm
»
Записан
kdm
Гость
Re: Подобие талицы из виджетов
«
Ответ #9 :
Август 03, 2010, 20:37 »
Приделал обработчик childEvent и при добавлении виджета устанавливаю фильтр installEventFilter и при QEvent::FocusIn устанавливаю рамку. Интересно, а если будет добавлен виджет, который сам родитель, его виджеты наверное не пройдут в обработчик?
Записан
ufna
Гость
Re: Подобие талицы из виджетов
«
Ответ #10 :
Август 03, 2010, 21:10 »
да можно проще - в главном виджете, который типа список, ловить все нажатия мыши. Ловить, смотреть по положению на какой виджет "элемент списка" клик пришелся, и дальше передавать этот эвент, чисто посмотрев данные и от них - уже "выделить" нужный.
Записан
kdm
Гость
Re: Подобие талицы из виджетов
«
Ответ #11 :
Август 03, 2010, 21:18 »
А как так сделать? Я пробовал переопределять mousePressEvent, но когда кликал по QLineEdit внутри виджета-айтема выполнение в обработчик не заходило. Есть вроде функция заграбить мышь, но не оч. представляю как надо тогда обрабатывать.
В принципе, можно и так оставить, я же не официальный класс разрабатываю, по этому для программы сойдет и так
В любом случае, спасибо за советы
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...