Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: ranet от Сентябрь 25, 2009, 15:29



Название: как лучше использовать диалоги, если их требуется много
Отправлено: ranet от Сентябрь 25, 2009, 15:29
Нужен "политический" совет, как правильнее поступить в том случае, если есть одно главное окно приложения и несколько модальных диалогов (не меньше десятка, для разных таблиц)?
1) Создать все диалоги при старте приложения, и по мере необходимости показывать/прятать?
2) Создавать по одному по мере необходимости, и уничтожать когда диалог становится не нужен? Или лучше прятать?


Название: Re: как лучше использовать диалоги, если их требуется много
Отправлено: Alp от Сентябрь 25, 2009, 15:55
1. Есть ли требования ко времени старта приложения? Если есть - диалоги при загрузке создавать нельзя, только в другом потоке. Если нету - проще создать сразу.
2. Какова вероятность того, что какие-то из них не будут открыты? Если велика - имеет смысл создавать диалоги на ходу (особенно, если они не потребуют много времени на создание).
3. Зачем уничтожать созданный диалог? Скрыть его и все. Если диалог имет родителя (а он его должен иметь, иначе модальность немодальной получится), при удалении родитель удалит всех своих детей.


Название: Re: как лучше использовать диалоги, если их требуется много
Отправлено: cya-st от Сентябрь 25, 2009, 20:05
Я считаю, что не имеет смысла держать все диалоги в памяти. Это кощунство. :(


Название: Re: как лучше использовать диалоги, если их требуется много
Отправлено: ufna от Сентябрь 25, 2009, 20:44
хз, мелкие диалоги проще всего создавать/удалять по мере необходимости, на то они и мелкие.

крупные, долгостроящиеся - тут уже в зависимости от удобства для юзера.


Название: Re: как лучше использовать диалоги, если их требуется много
Отправлено: Igors от Сентябрь 25, 2009, 20:55
Обычно "наследуется" логика модальности: немодальный лучше скрывать/показывать, модальный лучше (пере)создавать. В любом случае грузить из ресурсов очень привлекательно. По поводу "расходов": если нет чего-то "особенного", такого как:

- больших картинок
- большого числа QGraphicsItem
- большого числа строк в лист/комбо боксах

То расходы (как по памяти так и по скорости создания) несущественны даже на скромном железе


Название: Re: как лучше использовать диалоги, если их требуется много
Отправлено: cya-st от Сентябрь 25, 2009, 21:19
...
модальных диалогов (не меньше десятка, для разных таблиц)?
...
Если диалоги для таблиц, то вероятней всего диалог будет ресурсоемким. Лучше всего не парится, а создавать диалоги динамически.


Название: Re: как лучше использовать диалоги, если их требуется много
Отправлено: ranet от Сентябрь 25, 2009, 23:52
Обычно "наследуется" логика модальности: немодальный лучше скрывать/показывать, модальный лучше (пере)создавать. В любом случае грузить из ресурсов очень привлекательно. По поводу "расходов": если нет чего-то "особенного", такого как:

- больших картинок
- большого числа QGraphicsItem
- большого числа строк в лист/комбо боксах

То расходы (как по памяти так и по скорости создания) несущественны даже на скромном железе
Именно так, ничего перечисленного не хочу делать - не требуется пока. Просто таблиц много, структура - разная, просмотр я собрался сделать в QTableView на главном окне приложения (выбрали другую таблицу - перезаполнили из неё QTableView), но для удобства редактирования (юзабельность превыше всего) я хочу еще и диалоги редактирования сделать (многим так больше нравится). То есть выбрали запись в QTableView, нажали кнопочку, и появился диалог (несколько QLineEdit'ов, QPushButton'ов и QLabel'ов), редактируем в нем одну запись таблицы, не больше. Вобщем понятно, СПАСИБО!!!
Наверное сделаю так, что диалог будет создаваться при первом обращении к нему, и прятаться, если перестал быть нужен. А уничтожать его наверное стоит в случае выбора другой таблицы.. хотя может и не обязательно, если расходы по памяти небольшие..