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

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

Страниц: 1 2 [3] 4 5   Вниз
  Печать  
Автор Тема: Размещение множества сложных виджетов  (Прочитано 22063 раз)
mutineer
Гость
« Ответ #30 : Январь 05, 2012, 16:19 »

2 andrew.k
Видать его юзер хочет, чтобы все это выглядело как виджеты %)
Записан
andrew.k
Гость
« Ответ #31 : Январь 05, 2012, 16:23 »

2 andrew.k
Видать его юзер хочет, чтобы все это выглядело как виджеты %)
Он же сам говорил, что выглядеть должно так же как на скриншоте.
А где там "как виджеты"?
Записан
antipart
Гость
« Ответ #32 : Январь 05, 2012, 16:28 »

Цитировать
Нет, я о другом говорил.
Твоя таблица (во вложении). Что в ней сложного? Все данные текстовые, ничего рисовать не нужно.
Делегат прекрасно справится с отображением и редактированием твоих данных.
И делай хоть 100 таких таблиц. Зачем все делать виджетами ума не приложу.

так это Exel и делает ... а как быть с событиями...
там ведь к каждой ячейке привязан свой скрытый класс с данными о дате, часах, тарифах, о дежурных, об объекте и т.п.
+ всякие нарушения , опоздания...
и потом контекстное меню меняется в зависимости от этих данных и вызывает различные доп. диалоги и др.
да и редакция в основном через контекстное меню за исключением может QCheckBox (ну его можно тоже в меню скрыть)
Записан
andrew.k
Гость
« Ответ #33 : Январь 05, 2012, 16:35 »

Цитировать
Нет, я о другом говорил.
Твоя таблица (во вложении). Что в ней сложного? Все данные текстовые, ничего рисовать не нужно.
Делегат прекрасно справится с отображением и редактированием твоих данных.
И делай хоть 100 таких таблиц. Зачем все делать виджетами ума не приложу.

так это Exel и делает ... а как быть с событиями...
там ведь к каждой ячейке привязан свой скрытый класс с данными о дате, часах, тарифах, о дежурных, об объекте и т.п.
+ всякие нарушения , опоздания...
и потом контекстное меню меняется в зависимости от этих данных и вызывает различные доп. диалоги и др.
да и редакция в основном через контекстное меню за исключением может QCheckBox (ну его можно тоже в меню скрыть)
Модель тебе со всем этим поможет.
Записан
antipart
Гость
« Ответ #34 : Январь 05, 2012, 16:35 »

Цитировать
И делай хоть 100 таких таблиц.
как сделать 100 таких таблиц в одной вьюхе? с объединенными строками и столбцами и разными делегатами?
да еще и ссылки на структуры данных прикрутить?
Записан
antipart
Гость
« Ответ #35 : Январь 05, 2012, 16:38 »

Цитировать
Модель тебе со всем этим поможет.
я очень давно пользуюсь разными моделями, но не было необходимости делать такие сложные таблицы...
поэтому не знаю как это можно реализовать в Model/View
Записан
andrew.k
Гость
« Ответ #36 : Январь 05, 2012, 16:39 »

Цитировать
И делай хоть 100 таких таблиц.
как сделать 100 таких таблиц в одной вьюхе? с объединенными строками и столбцами и разными делегатами?
да еще и ссылки на структуры данных прикрутить?
Мне сложно тут давать совет, потому что я бы ни за что на свете не стал бы делать такой интерфейсный кошмар.
Может оно и будет хорошо и удобно, но то как я сейчас себе это представляю по описанию меня пугает.

1. 100 вьюх и сто моделей.
2. Делать хитрую модель, которая будет в одной вьюхе показывать все это безобразие (но даже не знаю, стоит ли? не думаю)
Записан
andrew.k
Гость
« Ответ #37 : Январь 05, 2012, 16:44 »

Цитировать
Модель тебе со всем этим поможет.
я очень давно пользуюсь разными моделями, но не было необходимости делать такие сложные таблицы...
поэтому не знаю как это можно реализовать в Model/View
Очень странное сообщение.

The QAbstractTableModel class provides an abstract model that can be subclassed to create table models.
Записан
antipart
Гость
« Ответ #38 : Январь 05, 2012, 19:08 »

Цитировать
Модель тебе со всем этим поможет.
я очень давно пользуюсь разными моделями, но не было необходимости делать такие сложные таблицы...
поэтому не знаю как это можно реализовать в Model/View
Очень странное сообщение.

The QAbstractTableModel class provides an abstract model that can be subclassed to create table models.
я имел в виду , что не знаю как делать в Model/View таблицы подобного рода (с объединенными строками и столбцами
+ index.internalPointer() создавать на каждую ячеку свой т.к. мне нужна ссылка на структурный класс который отвечает за хранение
данных и работает с БД + после изменения например дежурного в лайнЕдите нужно загружать все его дежурства если они есть
и снова переиндексировать модель) но это ладно можно вообразить ... но 100 подобных таблиц в одной вьюхе мне представить сложно кроме как если 1 таблица соответствует одной строке...
Записан
antipart
Гость
« Ответ #39 : Январь 05, 2012, 22:03 »

опытным путем установил, что дело не QScrollArea  и QLayout

пробовал размещать 30 таблиц просто на виджете без лэйаута с использованием move(); друг под другом
даже если делать фиксированную высоту виджета родителя так чтобы видна была только одна таблица
все равно тормозит так как-будто пытается отобразить все таблицы, а не только видимую часть виджета с одной таблицей

если же всем таблицам кроме первой указать hide(); то виджет ведет себя так будто в нем живет только одна таблица, т.е
шустро.

С чем это связано? может надо использовать какие-то флаги\атрибуты для виджета родителя или наоборот что-то отключить?

Записан
antipart
Гость
« Ответ #40 : Январь 05, 2012, 22:16 »

p.s.
можно даже взять ~3000-4000 обычных QPushButton и положить одна на другую без всяких move(); на одну из вкладок QTabWidget
 и попереключаться между вкладками. Будет понятно о чем речь.
Записан
andrew.k
Гость
« Ответ #41 : Январь 05, 2012, 23:19 »

p.s.
можно даже взять ~3000-4000 обычных QPushButton и положить одна на другую без всяких move(); на одну из вкладок QTabWidget
 и попереключаться между вкладками. Будет понятно о чем речь.
О чем это говорит? О том, что не нужно создавать 3000-4000 виджетов!

Есть кто считает, что это нормально?
« Последнее редактирование: Январь 05, 2012, 23:29 от andrew.k » Записан
andrew.k
Гость
« Ответ #42 : Январь 05, 2012, 23:25 »

Цитировать
Модель тебе со всем этим поможет.
я очень давно пользуюсь разными моделями, но не было необходимости делать такие сложные таблицы...
поэтому не знаю как это можно реализовать в Model/View
Очень странное сообщение.

The QAbstractTableModel class provides an abstract model that can be subclassed to create table models.
я имел в виду , что не знаю как делать в Model/View таблицы подобного рода (с объединенными строками и столбцами
+ index.internalPointer() создавать на каждую ячеку свой т.к. мне нужна ссылка на структурный класс который отвечает за хранение
данных и работает с БД + после изменения например дежурного в лайнЕдите нужно загружать все его дежурства если они есть
и снова переиндексировать модель) но это ладно можно вообразить ... но 100 подобных таблиц в одной вьюхе мне представить сложно кроме как если 1 таблица соответствует одной строке...

Мне кажется лучше разбираться с этим, чем плодить тыщи виджетов.
Интересный вопрос, что делать со span. Оказывается его можно задать только для view.
Было бы удобно из модели как-то управлять.
« Последнее редактирование: Январь 05, 2012, 23:28 от andrew.k » Записан
andrew.k
Гость
« Ответ #43 : Январь 05, 2012, 23:31 »

Вот и ответ тебе.

QSize QAbstractItemModel::span ( const QModelIndex & index ) const
Записан
antipart
Гость
« Ответ #44 : Январь 06, 2012, 17:06 »

Вот и ответ тебе.

QSize QAbstractItemModel::span ( const QModelIndex & index ) const
спасибо за совет, покопаем сюда... Плачущий
Записан
Страниц: 1 2 [3] 4 5   Вверх
  Печать  
 
Перейти в:  


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