Russian Qt Forum
Ноябрь 26, 2024, 14:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как работает слот submitAll()?  (Прочитано 6726 раз)
Karl-Philipp
Гость
« : Ноябрь 26, 2009, 00:11 »

Решил разобраться со слотом submitAll() из QSqlTableModel.
Код слота выглядит так:

Код
C++ (Qt)
bool QSqlTableModel::submitAll()
{
   Q_D(QSqlTableModel);
 
   switch (d->strategy) {
   ...
   }
   return false;
}

интересует указатель 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()
То есть расскажите, пожалуйста, подробно, что означает эта  запись?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Ноябрь 26, 2009, 00:28 »

Этот вопрос не относится к базам данных, троли применяют данный прием достаточно часто. Т.е. приватный класс и q, d указатели. К сожалению, толково я не смогу все объяснить.
ПыСы: Константин Очень хорошо разбирается в данном вопросе. Подмигивающий
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
igor_bogomolov
Гость
« Ответ #2 : Ноябрь 26, 2009, 00:43 »

Цитата: terlan
Вопрос 2: что означает макрос #define Q_D(Class) Class##Private * const d = d_func()
То есть расскажите, пожалуйста, подробно, что означает эта  запись?
Появилась такая статья на хабрахабре, может поможет  Улыбающийся
Что такое Pimpl по версии Qt, и с чем его едят!
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Ноябрь 26, 2009, 00:48 »

А вот непосредственно о d-указателях от Jasmin Blanchette (не безызвестного):
http://qt.osdn.org.ua/data-sharing.html

(на русском)
Записан

Юра.
shender
Гость
« Ответ #4 : Ноябрь 26, 2009, 11:36 »

Вчерашняя статья на Хабре, достаточно доступно

http://habrahabr.ru/blogs/qt_software/76248/
Записан
Karl-Philipp
Гость
« Ответ #5 : Ноябрь 26, 2009, 12:42 »

всем  большое спасибо, читаю Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.065 секунд. Запросов: 22.