Pull to refresh

Comments 18

Котики плохую статью не спасут.

Плохая или хорошая же, за ними не видно — нужно сначала утопить 90%.
Котики плохую статью не спасут.
Котик(он тут один) никого не спасает. Насчёт «плохой статьи», обоснуйте.
Я же написал — за котиками не видно.

Оформите статью по-человечески, чтобы можно было с ней работать. А пока я ее читать не буду, хотя тема мне лично интересна.
Уменьшил размеры иллюстраций. Читайте.
1. А в чем смысл конструкции?
AddressDialog::AddressDialog( QVariant id, QWidget *parent) :
	QDialog(parent),
	ui(new Ui::AddressDialog)

Диалог создает еще одну копию своего же класса и хранит у себя же в мембере ui, зачем?

2. Очень странная обработка ошибок — местами есть, местами нет. И никаких действий при этом.
Тем более работа с БД ведется в конструкторе — а если произойдет сбой при создании формы?
Например что там, в конструкторе, может произойти?
Отличная идея, задавать уточняющие вопросы через неделю =)

Много чего может произойти в реальном мире. По коду:
1) Данные из БД не загрузились. Программа была открыта 3 дня и коннект к серверу умер.
Или мастер-детайл не соответствует старым данным — удалили на соседнем рабочем месте.

2) Данные не проходят валидацию. Я понимаю, что пока в этом примере ее нет, но будет же когда нибудь!

Итого — объект формы создан (QT же не выбрасывает таких исключений), а содержимое формы «левое». Нажимаем ОК.
Вопрос 1 снимается. Это специфика QT — Ui::AddressDialog это Qt сгенерированный класс данных формы типа AddressDialog (другой класс).
Тема интересная.
Количество котиков зашкаливает. И даже есть котики которые в по высоте в FulHD не влезают целиком.
Котика можно пропустить. Извиняйте что не влезает. Просто первая статья, и тренируюсь на котиках.
Спасибо что заметили про размеры. Иллюстрации переделал.
Каждому полю на форме нужно вручную добавлять свойство с заданным именем?
Мы в подобной ситуации создали плагин с наследниками компонент, чтобы они содержали в себе нужные свойства, плюс доработали его так, чтобы можно было массово задавать имя таблицы дочерним компонентам.
Каждому полю на форме нужно вручную добавлять свойство с заданным именем?

Да. Это логично, что поля ввода на форме, как то линкуются со столбцами в базе. У меня это property QObject -a.
Меня хватило только на разделы «История» и «Обзор кода».
Дальше просто пробежал глазами, потому что фотографий кота больше, чем полезной информации. Зачем злоупотреблять? Хабр не Пикабу.
Иногда можно потратить часы на исследование чужого кода. Там всякое можно увидеть. А вы не захотели даже понять описанное решение среди плохих иллюстраций. Наверное не очень то и хотелось.

У вас просто не хватит терпения на код… Можете смело закрыть статью и забыть.
Модель\представление\делегат для Qt не пробовали использовать?
Очень много работал со всеми этими моделями и делегатами для таблиц и немного для форм. И хотел бы даже написать об этом.
В целом, работает 50\50. Надо «плясать с бубном». Этим пляскам и была посвящена часть про «QDataMapper».
Sign up to leave a comment.

Articles