Название: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: daimon от Май 17, 2011, 13:47 Есть форма на ней стеквиджет, на одной странице стеквиджета размещена группа виджетов - нужно для настройки кривой. Так вот задача такая количество страниц стеквиджета для настройки кривых графика изначально не известно, но минимум одна точно уже есть. При добавлении новой кривой - видно по структуре, которая идёт в класс формы, должна добавляться новая страница в стеквиджет с теми виджетами (только копия, а не адрес) для настройки новых кривых. Так как копирование виджетов запрещено программно, я не знаю как сделать. Новый класс настройки кривой делать не хочу, хочу как-то использовать, что есть на форме уже готовое (одна страница стеквиджета с внутренними виджетами)
Посоветуйте, что сделать? Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: GreatSnake от Май 17, 2011, 13:50 Один и тот же виджет может быть только в одном месте.
Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: daimon от Май 17, 2011, 14:41 Один и тот же виджет может быть только в одном месте. как тогда реализвать мою идею про динамическое добавление новых страниц в стеквиджет?Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: kambala от Май 17, 2011, 14:59 а что мешает создать виджет-родитель (хоть отдельный класс, хоть на лету) для группы виджетов и его добавлять в стек?
Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: daimon от Май 17, 2011, 15:00 а что мешает создать виджет-родитель (хоть отдельный класс, хоть на лету) для группы виджетов и его добавлять в стек? так получиться громоздко - был один класс, всё в нём (всё из формы) и вытаскивалпросто без дизайнера, да ещё один диалог, как-то не удобно, но если нет больше варианта, то придётся Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: mkv от Май 17, 2011, 15:58 похожую задачу решал при помощи QTabBar, QDataWidgetMapper и MVC
QTabBar - высылает сигналы о изменении таба, на него реагирует QDataWidgetMapper который проецирует данные из модели на набор виджетов. Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: m_ax от Май 17, 2011, 16:37 Есть форма на ней стеквиджет, на одной странице стеквиджета размещена группа виджетов - нужно для настройки кривой. Так вот задача такая количество страниц стеквиджета для настройки кривых графика изначально не известно, но минимум одна точно уже есть. При добавлении новой кривой - видно по структуре, которая идёт в класс формы, должна добавляться новая страница в стеквиджет с теми виджетами (только копия, а не адрес) для настройки новых кривых. Так как копирование виджетов запрещено программно, я не знаю как сделать. Новый класс настройки кривой делать не хочу, хочу как-то использовать, что есть на форме уже готовое (одна страница стеквиджета с внутренними виджетами) Аха, и для каждой кривой создавать новые однотипные виджеты. Гениально)Посоветуйте, что сделать? Когда для переключения между наборами данных, которые отображет одна группа виджетов, достаточно просто менять сами данные и не клонировать их представление. Прочитайте про MVC. Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: daimon от Май 17, 2011, 17:14 Есть форма на ней стеквиджет, на одной странице стеквиджета размещена группа виджетов - нужно для настройки кривой. Так вот задача такая количество страниц стеквиджета для настройки кривых графика изначально не известно, но минимум одна точно уже есть. При добавлении новой кривой - видно по структуре, которая идёт в класс формы, должна добавляться новая страница в стеквиджет с теми виджетами (только копия, а не адрес) для настройки новых кривых. Так как копирование виджетов запрещено программно, я не знаю как сделать. Новый класс настройки кривой делать не хочу, хочу как-то использовать, что есть на форме уже готовое (одна страница стеквиджета с внутренними виджетами) Аха, и для каждой кривой создавать новые однотипные виджеты. Гениально)Посоветуйте, что сделать? Когда для переключения между наборами данных, которые отображет одна группа виджетов, достаточно просто менять сами данные и не клонировать их представление. Прочитайте про MVC. а как модель привязать к виджетам не знаю, читал только про таблицы, деревья и списки, мол создаётся модель и вешается во вьювер, а как подобное с виджетами сделать и на какое представление тогда вешать не знаю Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: daimon от Май 17, 2011, 17:39 Надо создать наследника от базового класса модели и ещё сделать своё представление.
Поясните на простом примере: один виджет (QlineEdit) Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: GreatSnake от Май 17, 2011, 17:42 то понятно надо создать наследника от базового класса модели и сделать свою модель и сделать своё представление, чтоли Твой "русский" настолько сложен для понимания, что просто слов нет :(поясните на простом примере мол один виджет (QlineEdit) и он даёт строку для настроек Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: daimon от Май 17, 2011, 17:49 Надо создать наследника от базового класса модели и ещё сделать своё представление.
Поясните на простом примере: один виджет, на котором QlineEdit, Этот виджет и будет создаваться каждый раз как появляется новая кривая. Что должно быть в модели? Я думаю в модели сами данные - те настройки, которые забираются с представления - структура настроек графика Что в представлении? Я думаю в представлении должно описываться про виджеты в представлении и работа с моделью. А вот точнее не знаю. Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: GreatSnake от Май 17, 2011, 18:07 Надо создать наследника от базового класса модели и ещё сделать своё представление. Мде... Запрос просто бредовый...Поясните на простом примере: один виджет (QlineEdit) Тебе же уже предложили почитать о MVC. Вот хотя бы это (http://doc.crossplatform.ru/qt/4.3.2/model-view-introduction.html). Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: _OLEGator_ от Май 17, 2011, 18:49 Зачем клонировать виджеты, при редактировании нужной кривой просто обновлять данные в виджетах и все, запоминаешь текущую редактируемую кривую, обновил данные, применил изменения...
Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: daimon от Май 17, 2011, 19:28 Зачем клонировать виджеты, при редактировании нужной кривой просто обновлять данные в виджетах и все, запоминаешь текущую редактируемую кривую, обновил данные, применил изменения... слево список с пунктами меню, по индексу вызывается страница стеквиджета, как потом стягивать в настройки, если например разныена картинке пока только для одной кривой Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: m_ax от Май 17, 2011, 19:50 Зачем клонировать виджеты, при редактировании нужной кривой просто обновлять данные в виджетах и все, запоминаешь текущую редактируемую кривую, обновил данные, применил изменения... слево список с пунктами меню, по индексу вызывается страница стеквиджета, как потом стягивать в настройки, если например разныеНет никакой необходимости для каждой кривой создавать новые виджеты только лишь для того, чтоб отобразить на них другой набор данных. Это очень плохое решение. Кстати, если вы посмотрите в реализацию lightplot2d, то найдёте там нужное вам решение. Вот пример, о котором вы вероятно говорите: Слева список всех кривых, справа панель с виджетами для визуализации и редактирования данных. Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: daimon от Май 17, 2011, 20:02 Вы правы, сроки поджимают, а я пока так с моделями и представлениями не знаком
Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: daimon от Май 17, 2011, 20:10 Посмотрел все последнии версии LightPlot2d, подобного диалога не нашел, есть только с таблицей и без возможности добавить 2 кривую
Название: Re: создание новый виджетов на основе старых (как бы копирование виджета) Отправлено: m_ax от Май 17, 2011, 20:18 Цитировать Вы правы, сроки поджимают, а я пока так с моделями и представлениями не знаком Суть в самой идеи модели-представления. Это не означает, что нужно непременно использовать Qt MVC.Цитировать Посмотрел все последнии версии LightPlot2d, подобного диалога не нашел, есть только с таблицей и без возможности добавить 2 кривую Я же вам уже давал эту ссылку: пост №100 в http://www.prog.org.ru/topic_10208_90.html#lastPostОттуда скачиваете виджет. Но он требует установленной lightplot2d |