crossplatform.ru

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


  Ответ в Конструктор, QTimer::singleShot, виртуальные методы...
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
PAFOS Дата 19.8.2011, 8:06
  Есть на это функция QMetaObject::invokeMethod() (см. подробности в документации)

Очень полезная функция, надо признать...
Litkevich Yuriy Дата 12.8.2011, 18:12
 
Цитата(hoRUS @ 12.8.2011, 16:10) *
И дополнительно, я так понимаю, после создания экземпляра объекта нужно говорить что-то вроде QCoreApplication::processEvents() .
нет не нужно, если конечно после конструктора у тебя в длительном цикле программа не находится.

Цитата(hoRUS @ 12.8.2011, 16:10) *
Насколько такие действия правомерны, нет ли там скрытых (или не скрытых) граблей?
это обычная работа таймера.
hoRUS Дата 12.8.2011, 13:10
  Приветствую всех!

Понятно, что вызывать виртуальные функции из конструктора суперкласса с целью инициализировать объект подкласса каким-то специфичным для него образом просто так нельзя, но иногда очень хочется сделать что-то подобное, чтобы не индусить код лишней копипастой :rolleyes: . Возникает вопрос, можно ли как-то это надежно и безопасно сделать средствами Qt. Например, можно использовать в конструкторе

QTimer::singleShot(0, this, SLOT(initInstance()));


, где initInstance() - какой-то слот, в котором вызываются виртуальные функции?
И дополнительно, я так понимаю, после создания экземпляра объекта нужно говорить что-то вроде QCoreApplication::processEvents() .
Насколько такие действия правомерны, нет ли там скрытых (или не скрытых) граблей?
Спасибо.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 19:49