Russian Qt Forum

Qt => Общие вопросы => Тема начата: ymb от Январь 09, 2010, 13:23



Название: Куда вставить вызов функции для её запуска при активации формы? (Qt 4.6.0)
Отправлено: ymb от Январь 09, 2010, 13:23
Есть функция, которая должна срабатывать при активации формы. Где нужно разместить вызов этой функции?


Название: Re: Куда вставить вызов функции для её запуска при активации формы? (Qt 4.6.0)
Отправлено: Dendy от Январь 09, 2010, 13:41
Что по-вашему есть активация формы? Если показ окна - то в переопределённом showEvent(), если при получении фокуса - то в переопределённом focusInEvent().


Название: Re: Куда вставить вызов функции для её запуска при активации формы? (Qt 4.6.0)
Отправлено: ymb от Январь 09, 2010, 13:58
Вызов дополнительной формы производится из главной нажатием клавиши.
 
Form1 *Form11 = new Form1(this);
Form11->setAttribute(Qt::WA_DeleteOnClose);

т.к. форма удаляется после закрытия, думаю, что надо использовать showEvent()

Спасибо.


Название: Re: Куда вставить вызов функции для её запуска при активации формы? (Qt 4.6.0)
Отправлено: Dendy от Январь 09, 2010, 14:01
Да, скорее всего showEvent() - ваш случай.


Название: Re: Куда вставить вызов функции для её запуска при активации формы? (Qt 4.6.0)
Отправлено: ymb от Январь 09, 2010, 17:48
Тогда ещё вопрос:
Переопределил showEvent(). Пропали установки заданные при запуске формы Form11. Например размер и модальность.

Можно ли сделать так, чтоб не совсем переписывать слот?
Или только полная замена?


Название: Re: Куда вставить вызов функции для её запуска при активации формы? (Qt 4.6.0)
Отправлено: BRE от Январь 09, 2010, 18:13
Тогда ещё вопрос:
Переопределил showEvent(). Пропали установки заданные при запуске формы Form11. Например размер и модальность.

Можно ли сделать так, чтоб не совсем переписывать слот?
Или только полная замена?
Ты забыл про BaseClass::showEvent(...)


Название: Re: Куда вставить вызов функции для её запуска при активации формы? (Qt 4.6.0)
Отправлено: ymb от Январь 09, 2010, 21:44
Честно говоря пока не нашёл как это правильно сделать.
Если не трудно, можно подробнее об этом?


Название: Re: Куда вставить вызов функции для её запуска при активации формы? (Qt 4.6.0)
Отправлено: BRE от Январь 09, 2010, 21:52
Честно говоря пока не нашёл как это правильно сделать.
Если не трудно, можно подробнее об этом?
Например, если Form1 наследуется от QWidget, то
Код
C++ (Qt)
void Form1::showEvent( QShowEvent *event )
{
QWidget::showEvent( event ); // Вызываем showEvent базового класса
 
// Выполняем свои действия
}
 


Название: Re: Куда вставить вызов функции для её запуска при активации формы? (Qt 4.6.0)
Отправлено: ymb от Январь 09, 2010, 22:42
Спасибо.Получилось.