Russian Qt Forum
Ноябрь 24, 2024, 23:25
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Размещение множества сложных виджетов
Страниц:
1
2
3
[
4
]
5
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Размещение множества сложных виджетов (Прочитано 22331 раз)
antipart
Гость
Re: Размещение множества сложных виджетов
«
Ответ #45 :
Январь 06, 2012, 17:12 »
смущает правда это:
Цитировать
Note: Currently, span is not used.
Записан
andrew.k
Гость
Re: Размещение множества сложных виджетов
«
Ответ #46 :
Январь 06, 2012, 17:17 »
Цитата: antipart от Январь 06, 2012, 17:12
смущает правда это:
Цитировать
Note: Currently, span is not used.
Не попробуешь - не узнаешь, кстати, если попробуешь, не забудь сюда рассказать, что получилось.
Записан
antipart
Гость
Re: Размещение множества сложных виджетов
«
Ответ #47 :
Январь 06, 2012, 17:43 »
пока больше склоняюсь к еще одной попытке склонить
товарища на более грамотное решение по юзабилити...
Записан
andrew.k
Гость
Re: Размещение множества сложных виджетов
«
Ответ #48 :
Январь 06, 2012, 23:24 »
Цитата: antipart от Январь 06, 2012, 17:43
пока больше склоняюсь к еще одной попытке склонить
товарища на более грамотное решение по юзабилити...
Сделай ему мостра! Пусть мучается, садист)
А вообще на словах сложно склонять, лучше сделать некую демку предлагаемого интерфейса, чтобы можно было щупать.
А просто говорить "это плохо" ни к чему не приведет. Нужно предлагать альтернативу.
Записан
vertus
Гость
Re: Размещение множества сложных виджетов
«
Ответ #49 :
Январь 07, 2012, 11:28 »
Если принципиально чтобы были именно виджеты, то можно попробывать такой вариант:
1. Выделить данные находящиеся на виджете в отдельную, не визуальную сущность - модель.
2. Создать виджет который может на лету принимать модель и перерисовывать себя.
3. Сделать тысячю экземпляров моделей (для каждого виджета).
4. Создать на экране ровно столько виджетов, сколько должно отображаться в данный момент времени.
5. При прокрутке менять модели виджетов отображающихся на экране.
Профит - реально создается несколько виджетов, а поскольку перерисовка в любом случае происходит, то времени на смену модели вообще не убъёт.
Цитировать
А вообще на словах сложно склонять, лучше сделать некую демку предлагаемого интерфейса, чтобы можно было щупать.
А просто говорить "это плохо" ни к чему не приведет. Нужно предлагать альтернативу.
Да тут все просто как я понял. Есть список из 1000 виджетов, а на каждом таком виджете ещё 300 виджетов. Естественно будет тормозить.
Цитата: antipart от Январь 06, 2012, 17:43
пока больше склоняюсь к еще одной попытке склонить
товарища на более грамотное решение по юзабилити...
А потом эти товарищи заявляют какой тормозной этот Qt!
«
Последнее редактирование: Январь 07, 2012, 11:33 от vertus
»
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Размещение множества сложных виджетов
«
Ответ #50 :
Январь 07, 2012, 16:33 »
не асилил читать всю тему. Но вот первое что пришло в голову.
Когда делают пользовательский виджет, часто халтурят, ради экономии нескольких секунд на кодирование. Именно: в обработчике PaintEvent перерисовывают весь виджет, хотя можно было лишь небольшую область перерисовывать. Возможно в этом и проблема.
Записан
Юра.
antipart
Гость
Re: [Решено] Размещение множества сложных виджетов
«
Ответ #51 :
Январь 11, 2012, 23:21 »
Вариант решения оказался тем, которого больше всего боялся, но на деле оказалось гораздо проще и быстрее чем думал...
Если кому интересно:
Нарисовал таблицу на PaintEvent , подставляя текст из структуры данных. Далее на различных MouseEvent отслеживал
координаты курсора и выполнял необходимые действия:
Запихивал QRect-ы, которые планировались быть активными в QList-ы таким образом, чтобы индексы соответствовали индексам в списках с данными, которые нужно было править (правка через контекстное меню - у каждого может быть разное)
QLineEdit c комплитером создал один (для правки текста - сразу его hide()) и перемещал в нужные координаты, а после правки опять hide(); Комплитер с моделью, так что в разных случаях списки автодополнения легко менять...
Вобщем где-то так... Может, конечно, и кривовато, зато результат порадовал: 1000 таблиц летает замечательно...
время переключения на вкладку менее 0.5 сек. , а при 2000 - время переключения менее 1сек. Думаю можно еще более
оптимизировать если рисовать на QImage и обновлять не на PaintEvent, а при необходимости, но меня и это пока устраивает
Записан
andrew.k
Гость
Re: Размещение множества сложных виджетов
«
Ответ #52 :
Январь 12, 2012, 00:26 »
Мне интересно увидеть это чудо.
Как оно выглядит. Скрин.
Записан
_OLEGator_
Гость
Re: Размещение множества сложных виджетов
«
Ответ #53 :
Январь 12, 2012, 09:22 »
Ага, в итоге реализовал свою собственную таблицу, вместо того, чтобы разобраться с Model/View и делегатами.
Записан
antipart
Гость
Re: Размещение множества сложных виджетов
«
Ответ #54 :
Январь 12, 2012, 14:20 »
Цитата: _OLEGator_ от Январь 12, 2012, 09:22
Ага, в итоге реализовал свою собственную таблицу, вместо того, чтобы разобраться с Model/View и делегатами.
Если вам интересно и есть время разобраться с Model/View и делегатами, то пожалуйста, и с нами поделитесь если получится!
А у меня стояла конкретная задача , причем срочная...
Выкладываю несколько скринов, т.к. один полноценный на моем ноуте нельзя сделать(из-за разрешения).
Просто проект затачивается на широкий Mac c 2700 вширь!
Записан
andrew.k
Гость
Re: Размещение множества сложных виджетов
«
Ответ #55 :
Январь 12, 2012, 14:40 »
Вполне симпатично. Только двоеточия в шапках таблиц совершенно не к чему, это неверно.
Но так и не пойму какие сложности возникли с моделью. Через модель было бы быстрее сделать, чем ручками.
Кстати, какие преимущества дает эта программа, по сравнению с такой же сделанной в экселе. Тоже не пойму)
«
Последнее редактирование: Январь 12, 2012, 14:41 от andrew.k
»
Записан
antipart
Гость
Re: Размещение множества сложных виджетов
«
Ответ #56 :
Январь 12, 2012, 14:55 »
Цитировать
Только двоеточия в шапках таблиц совершенно не к чему, это неверно.
Сделал как в образце... (хотят точь в точь -> получите
)
Цитировать
Но так и не пойму какие сложности возникли с моделью.
Какие сложности я уже писал выше, а на исследование нет времени (проект итак уже горящий)
Цитировать
Через модель было бы быстрее сделать, чем ручками.
Не знаю не пробовал... а на это потратил день.
Цитировать
Кстати, какие преимущества дает эта программа, по сравнению с такой же сделанной в экселе. Тоже не пойму)
Ну во-первых это только маленькая часть программы(одна вкладка из 15), а основное отличие в функционале и удобстве, которого особо не видно на скринах (вкратце...например показ за разные месяцы или автогенерация дежурств для каждой и для всех таблиц сразу на основе предыдущего месяца и др. условий...)
Записан
andrew.k
Гость
Re: Размещение множества сложных виджетов
«
Ответ #57 :
Январь 12, 2012, 15:05 »
Цитата: antipart от Январь 12, 2012, 14:55
Цитировать
Только двоеточия в шапках таблиц совершенно не к чему, это неверно.
Сделал как в образце... (хотят точь в точь -> получите
)
Может не нужно воспринимать все слишком буквально?
Я даже у самых бюрократистых бюрократов не видел двоеточия в шапке таблицы
Это неграмотно.
Записан
andrew.k
Гость
Re: Размещение множества сложных виджетов
«
Ответ #58 :
Январь 12, 2012, 15:07 »
Да что там, я вообще никогда не видел двоеточия в шапке таблицы.
Попробуй
найти
сам)
Записан
antipart
Гость
Re: Размещение множества сложных виджетов
«
Ответ #59 :
Январь 12, 2012, 15:14 »
Цитата: andrew.k от Январь 12, 2012, 15:05
Может не нужно воспринимать все слишком буквально?
Я даже у самых бюрократистых бюрократов не видел двоеточия в шапке таблицы
Это неграмотно.
Да вы правы 100 раз... Это я уже со зла...
чуть остыну - уберу...
Записан
Страниц:
1
2
3
[
4
]
5
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...