LINUX.ORG.RU

а как себя должны вести эти две вьюхи, привязанные к одной модели, если одну вьюху очистить?

bvn13 ★★★★★
()
Последнее исправление: bvn13 (всего исправлений: 1)
Ответ на: комментарий от bvn13

Хочется просто обойтись без дублирования данных на вторую модель... Думаю сделать атрибут visible и фильтровать его во второй вьюхе..

UVV ★★★★★
() автор топика

Помещай по кнопке clear в этот view новый экземпляр модели (пустой).

m0rph ★★★★★
()
Ответ на: комментарий от buddhist

Я на решении с флагом остановлюсь.

UVV ★★★★★
() автор топика

Proxy-модель например.

yoghurt ★★★★★
()

c++, mvc, qt

в кьюте не полноценный MVC раз уж за то речь пошла.

А по твоей теме тебе надо ProxyModel

MikeDM ★★★★★
()

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

Вот очистишь ты одно представление, а дальше что? Оно же не будет висеть пустое, наверняка, иначе это очищение бессмысленно. Наполнять его? А как это соотнесётся с тем, что данные у тебя уже есть? Добавлять в конец? Перезаписывать новыми данными? Форкать модель и получать две копии?

E ★★★
()
Ответ на: комментарий от UVV

Вопрос именно к архитектуре. Если ваше представление должно в разных местах показывать разные данные - это два разных представления.

Если ваша модель должна показывать в разных местах данные разным образом - это две разные модели.

На примере мобильника - вы пытаетесь сделать что бы в клубе у вас отображался как айфон, а в гоп-районе отображался как дешовый «кирпич». Хотите такой эффект - таскайте оба телефона сразу и пользуйтесь тем, который нужен в конкретной ситуации.

RiseOfDeath ★★★★
()
Последнее исправление: RiseOfDeath (всего исправлений: 4)
Ответ на: комментарий от RiseOfDeath

Если ваша модель должна показывать в разных местах данные разным образом - это две разные модели.

Одинаковым образом и одинаковые данные. Только одно представление можно очистить, а второе нельзя, в этом вся разница. Дублировать данные только из-за этого требования пока смысла не вижу. Если вдруг что-то изменится, то ессно будет другая модель и второй набор данных.

UVV ★★★★★
() автор топика
Ответ на: комментарий от RiseOfDeath

На примере мобильника - вы пытаетесь сделать что бы в клубе у вас отображался как айфон, а в гоп-районе отображался как дешовый «кирпич». Хотите такой эффект - таскайте оба телефона сразу и пользуйтесь тем, который нужен в конкретной ситуации.

Хмм. Это похоже на айпхон6. Вроде и айпхон, а выглядит, как дешёвый старый LG.

anonymous
()
Ответ на: комментарий от UVV

Данные с одинаковой моделью должны вести себя одинаково - в этом ее смысл.

Никто не запрещает использовать одинаковые данные (причем один экземпляр данных) в двух разных представлениях.

RiseOfDeath ★★★★
()

Какова семантика «очистить» у view?

1. Очистка удаляет данные в хранилище? Если да, ответ очевиден — никак.

2. Очистка отвязывает представление от данных? Если да, ответ очевиден — отвязать представление от данных.

kvap
()
Последнее исправление: kvap (всего исправлений: 1)

Самое бредовое решение

Если нельзя сделать tableView->setModel(nullptr); ... то можно скрыть все столбцы или строки циклом. Не забудьте написать коммент в таким коде что вы не виноваты, А то следующие поколения могут найти и оторвать руки.

Khenty
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.