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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Куда вставить вызов функции для её запуска при активации формы? (Qt 4.6.0)  (Прочитано 7202 раз)
ymb
Гость
« : Январь 09, 2010, 13:23 »

Есть функция, которая должна срабатывать при активации формы. Где нужно разместить вызов этой функции?
Записан
Dendy
Гость
« Ответ #1 : Январь 09, 2010, 13:41 »

Что по-вашему есть активация формы? Если показ окна - то в переопределённом showEvent(), если при получении фокуса - то в переопределённом focusInEvent().
Записан
ymb
Гость
« Ответ #2 : Январь 09, 2010, 13:58 »

Вызов дополнительной формы производится из главной нажатием клавиши.
 
Form1 *Form11 = new Form1(this);
Form11->setAttribute(Qt::WA_DeleteOnClose);

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

Спасибо.
« Последнее редактирование: Январь 09, 2010, 17:45 от ymb » Записан
Dendy
Гость
« Ответ #3 : Январь 09, 2010, 14:01 »

Да, скорее всего showEvent() - ваш случай.
Записан
ymb
Гость
« Ответ #4 : Январь 09, 2010, 17:48 »

Тогда ещё вопрос:
Переопределил showEvent(). Пропали установки заданные при запуске формы Form11. Например размер и модальность.

Можно ли сделать так, чтоб не совсем переписывать слот?
Или только полная замена?
Записан
BRE
Гость
« Ответ #5 : Январь 09, 2010, 18:13 »

Тогда ещё вопрос:
Переопределил showEvent(). Пропали установки заданные при запуске формы Form11. Например размер и модальность.

Можно ли сделать так, чтоб не совсем переписывать слот?
Или только полная замена?
Ты забыл про BaseClass::showEvent(...)
Записан
ymb
Гость
« Ответ #6 : Январь 09, 2010, 21:44 »

Честно говоря пока не нашёл как это правильно сделать.
Если не трудно, можно подробнее об этом?
Записан
BRE
Гость
« Ответ #7 : Январь 09, 2010, 21:52 »

Честно говоря пока не нашёл как это правильно сделать.
Если не трудно, можно подробнее об этом?
Например, если Form1 наследуется от QWidget, то
Код
C++ (Qt)
void Form1::showEvent( QShowEvent *event )
{
QWidget::showEvent( event ); // Вызываем showEvent базового класса
 
// Выполняем свои действия
}
 
Записан
ymb
Гость
« Ответ #8 : Январь 09, 2010, 22:42 »

Спасибо.Получилось.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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