Russian Qt Forum
Март 29, 2024, 14:05
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Подстановка в слоты
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Подстановка в слоты (Прочитано 11862 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Подстановка в слоты
«
:
Октябрь 06, 2015, 13:52 »
Добрый день
Примечание: к слот/сигнал это не имеет никакого отношения.
Есть список напр из 3 объектов. Пользователь нажал бубочку "расчет", в рез-те записался файл который можно использовать, причем не только для тех 3 что были на момент расчета, но и для любых других. Т.е. в списке можно включать/отключать, добавлять, удалять и записанный файл работает с новым списком - так задумано. Сейчас файл хранит просто "слоты" - индексы 0, 1, 2. Ну ясно что если добавит 4 объекта, то с последним ничего не будет - в файле данные только для 3. Но можно заменить любой из 3 на новый, или отключить последний - все нормально.
И вот мелкая неприятность: когда отключается (или удаляется) "не последний", напр 0-й, то все сдвигается - 1-й попадает на место 0-го, 2-й на место 1-го. Когда файл используется можно указать ему что такой-то слот сейчас выключен. Но как (на каком основании) это делать? Напр
Цитировать
- Obj 0
+ Obj 1
+ Obj 2
Так хочется чтобы Obj 1(2) оставались слотами 1 и 2, а слот 0 неактивен
Цитировать
- Obj 0
+ Obj_new
+ Obj 1
+ Obj 2
А так желаемый рез-т чтобы активный Obj_new использовался вместо Obj 0 (как сейчас и работает)
Как это разрулить?
Спасибо
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Подстановка в слоты
«
Ответ #1 :
Октябрь 06, 2015, 22:14 »
сохранять ID слотов, а не только индексы?
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2094
Re: Подстановка в слоты
«
Ответ #2 :
Октябрь 06, 2015, 22:35 »
Цитата: Racheengel от Октябрь 06, 2015, 22:14
сохранять ID слотов, а не только индексы?
У вас у практиков, по видимому, есть какая то сакральная связь) Я вот раз десять перечитывал, так ничего и не понял)
Но, не исключаю, что это чисто мои проблемы) Но всё же..)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Подстановка в слоты
«
Ответ #3 :
Октябрь 06, 2015, 23:06 »
Цитата: m_ax от Октябрь 06, 2015, 22:35
Цитата: Racheengel от Октябрь 06, 2015, 22:14
сохранять ID слотов, а не только индексы?
У вас у практиков, по видимому, есть какая то сакральная связь) Я вот раз десять перечитывал, так ничего и не понял)
Но, не исключаю, что это чисто мои проблемы) Но всё же..)
Ну дык это, как же, там бубочка есть, если ее того, то в файл слот того, епта, а потом если еще раз, то оно уже не так, во
http://tomsk.fm/watch/191979
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2094
Re: Подстановка в слоты
«
Ответ #4 :
Октябрь 06, 2015, 23:18 »
Цитировать
то в файл слот того, епта, а потом
Не, не, в Казани реальные пацаны говорят не ёпта, а ибтэ) "Есть денги ибтэ? А если найду"
Жаргон, но всё же..)
«
Последнее редактирование: Октябрь 06, 2015, 23:20 от m_ax
»
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Подстановка в слоты
«
Ответ #5 :
Октябрь 06, 2015, 23:29 »
Цитата: m_ax от Октябрь 06, 2015, 23:18
Не, не, в Казани реальные пацаны говорят не ёпта, а ибтэ) "Есть денги ибтэ? А если найду"
Век живи - век учись
Никогда в Казани не был... А как там в моде нынче, кепка-беляш или "классика"-восьмиклинка?
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2094
Re: Подстановка в слоты
«
Ответ #6 :
Октябрь 06, 2015, 23:54 »
Цитировать
Никогда в Казани не был... А как там в моде нынче, кепка-беляш или "классика"-восьмиклинка?
Не, ну Казань сейчас цивильный город, можно, конечно, нарваться на гопоту где-нить на "жилке", но там сейчас не так как было раньше) Запуганные они стали какие то..
Помню мы с девчёнками ночью там алкоголь покупали (недогон так сказать) и ничего, побратались с местными пацанами даже) И нормуль) Но это, возможно, мы уже сами под мухой были.. Хотя даже и не возможно, а точно))
«
Последнее редактирование: Октябрь 06, 2015, 23:59 от m_ax
»
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Подстановка в слоты
«
Ответ #7 :
Октябрь 07, 2015, 05:36 »
Цитата: m_ax от Октябрь 06, 2015, 22:35
У вас у практиков, по видимому, есть какая то сакральная связь) Я вот раз десять перечитывал, так ничего и не понял)
Но, не исключаю, что это чисто мои проблемы) Но всё же..)
Есть 3 объекта, напр шарик, кубик и плоскость. Запустили физический движок. Шарик начал падать под действием тяжести, отскочил от плоскости, ударил кубик и.т.д. Это "симуляция" которая в общем случае может считаться долго. Естественно записать все посчитанные траектории в файл, чтобы каждый раз симулятор не гонять. Столь же естественно вместо простого шарика подставить что-то посложнее/поинтереснее и пусть оно движется по рассчитанному пути.
Цитата: Racheengel от Октябрь 06, 2015, 22:14
сохранять ID слотов, а не только индексы?
Неясно что дальше.
Позиция 1: файл может быть назначен извне (с диска), имеем какие-то "левые" ID (в файле). Ну может здесь и объективно решения нет (не знаю)
Позиция 2: файл "родной" но все "оригиналы" уже заменены. Хмм... "что осталось на трубе"?
Как-то я тут растерялся...
«
Последнее редактирование: Октябрь 07, 2015, 05:38 от Igors
»
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2094
Re: Подстановка в слоты
«
Ответ #8 :
Октябрь 07, 2015, 07:05 »
Цитировать
Есть 3 объекта, напр шарик, кубик и плоскость. Запустили физический движок. Шарик начал падать под действием тяжести, отскочил от плоскости, ударил кубик и.т.д. Это "симуляция" которая в общем случае может считаться долго. Естественно записать все посчитанные траектории в файл, чтобы каждый раз симулятор не гонять. Столь же естественно вместо простого шарика подставить что-то посложнее/поинтереснее и пусть оно движется по рассчитанному пути.
А с чего Вы взяли, что что-то отличное от шарика будет иметь ту же траекторию? В поле тяжести (однородной) у них разве совпадут траектории центов масс и то, только до первого столкновения с чем либо..
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Подстановка в слоты
«
Ответ #9 :
Октябрь 07, 2015, 07:14 »
Цитата: m_ax от Октябрь 07, 2015, 07:05
А с чего Вы взяли, что что-то отличное от шарика будет иметь ту же траекторию? В поле тяжести (однородной) у них разве совпадут траектории центов масс и то, только до первого столкновения с чем либо..
То юзер решает устраивает ли его аппроксимация сложного объекта шариком (или др "Proxy Shape"). А Вы от темы не отвлекайтесь
Записан
Bepec
Гость
Re: Подстановка в слоты
«
Ответ #10 :
Октябрь 07, 2015, 07:37 »
Что вы паритесь?
Вы хотите чтобы индексы шли с нуля, по количеству объектов. Так создавайте их всегда при получении данных с файла, а после анализируйте, уже добавляя признаки "отключения/включения".
Т.е. вместо использования статичных индексов используйте относительные, перерасчитываемые при вкл/откл объекта.
например:
Код:
загружаем
- Obj // индекс в массиве 0, дополнительный индекс -1 (отключен)
+ Obj // индекс в массиве 1, дополнительный индекс 0
+ Obj // индекс в массиве 2, дополнительный индекс 1
Втыкнули доп объект
Код:
- Obj // индекс в массиве 0, дополнительный индекс -1 (отключен)
+ Obj_new // индекс в массиве 1, дополнительный индекс 0
+ Obj 1 // индекс в массиве 2, дополнительный индекс 1
+ Obj 2 // индекс в массиве 3, дополнительный индекс 2
Переключили вкл/выкл для Obj, перерасчет дополнительных индексов
Код:
+ Obj // индекс в массиве 0, дополнительный индекс 0
+ Obj_new // индекс в массиве 1, дополнительный индекс 1
+ Obj 1 // индекс в массиве 2, дополнительный индекс 2
+ Obj 2 // индекс в массиве 3, дополнительный индекс 3
Т.е. вам всего то надо будет работать по дополнительному индексу, а не по индексу массива.
PS но всё равно даже на такой ответ Igors скажет - смена темы / непонятная придирка / насмешка / пожелание не слышать больше ответов / добавление условий к задаче / смена задачи / демагогическое усложнение условия
«
Последнее редактирование: Октябрь 07, 2015, 07:43 от Bepec
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Подстановка в слоты
«
Ответ #11 :
Октябрь 07, 2015, 07:55 »
Цитата: Bepec от Октябрь 07, 2015, 07:37
Т.е. вам всего то надо будет работать по дополнительному индексу, а не по индексу массива.
Пробуем. Юзер выключил первый (нулевой) объект. Вообще-то он его спокойно может удалить - ничем не рискует, файл-то есть (это я к тому что отслеживание неактивных все проблемы не решит).
Цитата: Bepec от Октябрь 07, 2015, 07:37
загружаем
- Obj // индекс в массиве 0, дополнительный индекс -1 (отключен)
+ Obj // индекс в массиве 1, дополнительный индекс 0
+ Obj // индекс в массиве 2, дополнительный индекс 1
По "дополнительным" тот же "сдвиг" что и сейчас (и чего хотелось бы избежать). Если он воткнет активный (между первой и второй строками) - будет норм, так это и сейчас так работает
В общем - не понял
«
Последнее редактирование: Октябрь 07, 2015, 07:57 от Igors
»
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Подстановка в слоты
«
Ответ #12 :
Октябрь 07, 2015, 09:12 »
Цитировать
Позиция 2: файл "родной" но все "оригиналы" уже заменены. Хмм... "что осталось на трубе"?
В смысле заменены? Их удалили? Тогда старые удалить из файла, а новые заново пересчитать.
Имя объекта прт этом может меняться как угодго, главное, чтоб id были уникальными.
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Подстановка в слоты
«
Ответ #13 :
Октябрь 07, 2015, 11:56 »
Цитата: Racheengel от Октябрь 07, 2015, 09:12
Цитировать
Позиция 2: файл "родной" но все "оригиналы" уже заменены. Хмм... "что осталось на трубе"?
В смысле заменены? Их удалили? Тогда старые удалить из файла, а новые заново пересчитать.
Файл не подлежит "частичному пересчету". См. пример выше для объектов шарик, кубик и плоскость. Удалять из файла также ничего нельзя - в любой момент "оригинальная" конфигурация может быть восстановлена.
[OFF]
Вы даете типичные ответы "на основании (богатого) опыта"
Вот только опыт этот выглядит удивительно однообразно и узковато - из того же ассыстентского ведра
[/OFF]
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Подстановка в слоты
«
Ответ #14 :
Октябрь 07, 2015, 12:16 »
Цитировать
Вы даете типичные ответы "на основании (богатого) опыта" Улыбающийся Вот только опыт этот выглядит удивительно однообразно и узковато - из того же ассыстентского ведра Улыбающийся
Какие вопросы, такие и ответы
Как я должен понимать фразу "все "оригиналы" уже заменены"?
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...