crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> не могу прочитать (не понимаю) запись в С++
Litkevich Yuriy
  опции профиля:
сообщение 13.2.2009, 20:01
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


void paintEvent(QPaintEvent *)
{
    QPainter(this).drawText(boundingRect, Qt::AlignCenter, "Qt"); //  <--
}
Может кто-нибудь объяснить как читать такую запись?

никакая переменная не создается, чтобы вызвать метод myvar.drawText().
статические члены класса вызываются так QPainter::drawText()

а тут как-то странно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 13.2.2009, 22:36
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


Все очень просто. Конструктор QPainter(this) возвращает объект QPainter у которого вызывается функция drawText().
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.2.2009, 22:41
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


т.е. это равносильно:
void paintEvent(QPaintEvent *)
{
    QPainter   painter(this);
    painter.drawText(boundingRect, Qt::AlignCenter, "Qt");
}
? Но так не написали, потому-что больше эта переменная ни для чего не нужна?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 13.2.2009, 22:45
Сообщение #4


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


Угу
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 9.8.2020, 20:05