Russian Qt Forum
Сентябрь 25, 2024, 01:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 3 [4] 5   Вниз
  Печать  
Автор Тема: Размещение множества сложных виджетов  (Прочитано 22052 раз)
antipart
Гость
« Ответ #45 : Январь 06, 2012, 17:12 »

смущает правда это:
Цитировать
Note: Currently, span is not used.
Записан
andrew.k
Гость
« Ответ #46 : Январь 06, 2012, 17:17 »

смущает правда это:
Цитировать
Note: Currently, span is not used.
Не попробуешь - не узнаешь, кстати, если попробуешь, не забудь сюда рассказать, что получилось.
Записан
antipart
Гость
« Ответ #47 : Январь 06, 2012, 17:43 »

пока больше склоняюсь  к еще одной попытке склонить  Улыбающийся товарища на более грамотное решение по юзабилити...
Записан
andrew.k
Гость
« Ответ #48 : Январь 06, 2012, 23:24 »

пока больше склоняюсь  к еще одной попытке склонить  Улыбающийся товарища на более грамотное решение по юзабилити...
Сделай ему мостра!  Пусть мучается, садист)

А вообще на словах сложно склонять, лучше сделать некую демку предлагаемого интерфейса, чтобы можно было щупать.
А просто говорить "это плохо" ни к чему не приведет. Нужно предлагать альтернативу.
Записан
vertus
Гость
« Ответ #49 : Январь 07, 2012, 11:28 »

Если принципиально чтобы были именно виджеты, то можно попробывать такой вариант:

1. Выделить данные находящиеся на виджете в отдельную, не визуальную сущность - модель.
2. Создать виджет который может на лету принимать модель и перерисовывать себя.
3. Сделать тысячю экземпляров моделей (для каждого виджета).
4. Создать на экране ровно столько виджетов, сколько должно отображаться в данный момент времени.
5. При прокрутке менять модели виджетов отображающихся на экране.

Профит - реально создается несколько виджетов, а поскольку перерисовка в любом случае происходит, то времени на смену модели вообще не убъёт.

Цитировать
А вообще на словах сложно склонять, лучше сделать некую демку предлагаемого интерфейса, чтобы можно было щупать.
А просто говорить "это плохо" ни к чему не приведет. Нужно предлагать альтернативу.

Да тут все просто как я понял. Есть список из 1000 виджетов, а на каждом таком виджете ещё 300 виджетов. Естественно будет тормозить.

пока больше склоняюсь  к еще одной попытке склонить  Улыбающийся товарища на более грамотное решение по юзабилити...

А потом эти товарищи заявляют какой тормозной этот Qt!  Смеющийся
« Последнее редактирование: Январь 07, 2012, 11:33 от vertus » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #50 : Январь 07, 2012, 16:33 »

не асилил читать всю тему. Но вот первое что пришло в голову.
Когда делают пользовательский виджет, часто халтурят, ради экономии нескольких секунд на кодирование. Именно: в обработчике PaintEvent перерисовывают весь виджет, хотя можно было лишь небольшую область перерисовывать. Возможно в этом и проблема.
Записан

Юра.
antipart
Гость
« Ответ #51 : Январь 11, 2012, 23:21 »

Вариант решения оказался тем, которого больше всего боялся, но на деле оказалось гораздо проще и быстрее чем думал... Подмигивающий
Если кому интересно:
Нарисовал таблицу на PaintEvent , подставляя текст из структуры данных. Далее на различных MouseEvent отслеживал
координаты курсора и выполнял необходимые действия:
Запихивал QRect-ы, которые планировались быть активными в QList-ы таким образом, чтобы индексы соответствовали индексам в списках с данными, которые нужно было править (правка через контекстное меню - у каждого может быть разное)
QLineEdit c комплитером создал один (для правки текста - сразу его hide()) и перемещал в нужные координаты, а после правки опять hide(); Комплитер с моделью, так что в разных случаях списки автодополнения легко менять...

Вобщем где-то так... Может, конечно, и кривовато, зато результат порадовал: 1000 таблиц летает замечательно...
время переключения на вкладку менее 0.5 сек. , а при 2000 - время переключения менее 1сек. Думаю можно еще более
оптимизировать если рисовать на QImage и обновлять не на PaintEvent, а при необходимости, но меня и это пока устраивает Улыбающийся
Записан
andrew.k
Гость
« Ответ #52 : Январь 12, 2012, 00:26 »

Мне интересно увидеть это чудо.
Как оно выглядит. Скрин.
Записан
_OLEGator_
Гость
« Ответ #53 : Январь 12, 2012, 09:22 »

Ага, в итоге реализовал свою собственную таблицу, вместо того, чтобы разобраться с Model/View и делегатами.
Записан
antipart
Гость
« Ответ #54 : Январь 12, 2012, 14:20 »

Ага, в итоге реализовал свою собственную таблицу, вместо того, чтобы разобраться с Model/View и делегатами.
Улыбающийся Если вам интересно и есть время разобраться с Model/View и делегатами, то пожалуйста, и с нами поделитесь если получится!
А у меня стояла конкретная задача , причем срочная...
Выкладываю несколько скринов, т.к. один полноценный на моем ноуте нельзя сделать(из-за разрешения).
Просто проект затачивается на широкий Mac c 2700 вширь!
Записан
andrew.k
Гость
« Ответ #55 : Январь 12, 2012, 14:40 »

Вполне симпатично. Только двоеточия в шапках таблиц совершенно не к чему, это неверно.
Но так и не пойму какие сложности возникли с моделью. Через модель было бы быстрее сделать, чем ручками.

Кстати, какие преимущества дает эта программа, по сравнению с такой же сделанной в экселе. Тоже не пойму)
« Последнее редактирование: Январь 12, 2012, 14:41 от andrew.k » Записан
antipart
Гость
« Ответ #56 : Январь 12, 2012, 14:55 »

Цитировать
Только двоеточия в шапках таблиц совершенно не к чему, это неверно.
Сделал как в образце... (хотят точь в точь -> получите Подмигивающий)

Цитировать
Но так и не пойму какие сложности возникли с моделью.
Какие сложности я уже писал выше, а на исследование нет времени (проект итак уже горящий)

Цитировать
Через модель было бы быстрее сделать, чем ручками.
Не знаю не пробовал... а на это потратил день. Шокированный

Цитировать
Кстати, какие преимущества дает эта программа, по сравнению с такой же сделанной в экселе. Тоже не пойму)
Ну во-первых это только маленькая часть программы(одна вкладка из 15), а основное отличие в функционале и удобстве, которого особо не видно на скринах (вкратце...например показ за разные месяцы или автогенерация дежурств для каждой  и  для всех таблиц сразу на основе предыдущего месяца и др. условий...)
Записан
andrew.k
Гость
« Ответ #57 : Январь 12, 2012, 15:05 »

Цитировать
Только двоеточия в шапках таблиц совершенно не к чему, это неверно.
Сделал как в образце... (хотят точь в точь -> получите Подмигивающий)
Может не нужно воспринимать все слишком буквально?
Я даже у самых бюрократистых бюрократов не видел двоеточия в шапке таблицы Улыбающийся Это неграмотно.
Записан
andrew.k
Гость
« Ответ #58 : Январь 12, 2012, 15:07 »

Да что там, я вообще никогда не видел двоеточия в шапке таблицы.
Попробуй найти сам)
Записан
antipart
Гость
« Ответ #59 : Январь 12, 2012, 15:14 »

Может не нужно воспринимать все слишком буквально?
Я даже у самых бюрократистых бюрократов не видел двоеточия в шапке таблицы Улыбающийся Это неграмотно.
Да вы правы 100 раз... Это я уже со зла... Грустный чуть остыну - уберу...
Записан
Страниц: 1 2 3 [4] 5   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.131 секунд. Запросов: 23.