Название: Как работает слот submitAll()? Отправлено: Karl-Philipp от Ноябрь 26, 2009, 00:11 Решил разобраться со слотом submitAll() из QSqlTableModel.
Код слота выглядит так: Код
интересует указатель d: Всплывющая подсказка показала, что это указатель на класс QSqlTableModelPrivate, находящийся в файле qsqltablemodel_p.h Нажав на F2 перешел к объявлениею строкой выше: Q_D(QSqlTableModel); Этот макрос #define Q_D(Class) Class##Private * const d = d_func() Вопрос 1: что за класс QSqlTableModelPrivate и для чего он нужен? Вопрос 2: что означает макрос #define Q_D(Class) Class##Private * const d = d_func() То есть расскажите, пожалуйста, подробно, что означает эта запись? Название: Re: Как работает слот submitAll()? Отправлено: Пантер от Ноябрь 26, 2009, 00:28 Этот вопрос не относится к базам данных, троли применяют данный прием достаточно часто. Т.е. приватный класс и q, d указатели. К сожалению, толково я не смогу все объяснить.
ПыСы: Константин Очень хорошо разбирается в данном вопросе. ;) Название: Re: Как работает слот submitAll()? Отправлено: igor_bogomolov от Ноябрь 26, 2009, 00:43 Цитата: terlan Вопрос 2: что означает макрос #define Q_D(Class) Class##Private * const d = d_func() Появилась такая статья на хабрахабре, может поможет :)То есть расскажите, пожалуйста, подробно, что означает эта запись? Что такое Pimpl по версии Qt, и с чем его едят! (http://habrahabr.ru/blogs/qt_software/76248/) Название: Re: Как работает слот submitAll()? Отправлено: lit-uriy от Ноябрь 26, 2009, 00:48 А вот непосредственно о d-указателях от Jasmin Blanchette (не безызвестного):
http://qt.osdn.org.ua/data-sharing.html (на русском) Название: Re: Как работает слот submitAll()? Отправлено: shender от Ноябрь 26, 2009, 11:36 Вчерашняя статья на Хабре, достаточно доступно
http://habrahabr.ru/blogs/qt_software/76248/ Название: Re: Как работает слот submitAll()? Отправлено: Karl-Philipp от Ноябрь 26, 2009, 12:42 всем большое спасибо, читаю :)
|