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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с сигналами и слотами  (Прочитано 5395 раз)
IPFreely
Гость
« : Январь 24, 2008, 16:01 »

Привет!
Я пишу Qt приложение с использованием модулей QtScript
И у меня возникла следующая проблема:
Есть главная форма, также есть дополнительная форма(на ней кнопка) и жаваскрипт к этой дополнительной форме
В главной форме загружаю через QUiLoader дополнительную форму(родителем дополнительной формы устанавливаю главную форму), загружаю жаваскрипт(внутри жаваскрипта на кнопку по клику вешаю сигнал на зызов функции).
Но при нажатии на кнопку ничего не происходит - функция не срабатывает.

Если же кнопка находится на главной форме - то все ок! все срабатывает
Примеры - в аттечче

В чем может быть проблема? помогите пожалуйста разобраться.

Спасибо.

PS: Qt 4.3.2 на Linux Gentoo 2.6.20-gentoo-r3
PSS: Когда приложение работает на консоль должно выводиться "it works!!! :-)" после клика на кнопку "Click me"
Записан
Dodge
Гость
« Ответ #1 : Январь 24, 2008, 16:34 »

Вообще плохо понимаю как у вас там чтото работает... у вас в mainForm::mainForm написанно:
Код:
...
QScriptEngine engine;
...
т.о. engine создан в стэке функции, следовательно после выхода из функции, объект engine умрет,
и весь ваш скрипт в контексте движка вместе с ним.

З.Ы. не выкладывайте архивы с исходниками, на форуме есть ббкод для этого.
Записан
Dodge
Гость
« Ответ #2 : Январь 24, 2008, 17:01 »

Да, второй пример то не пояснил...

Во втором(work который) все верно, у вас в main'е создается движек, происходит evaluate и app.exec(), т.о. пока не будет зделан app.quit() или не закроются все окна(это событие по умолчанию, если не ошибаюсь его можно отключить), приложение будет находится в цикле обработки сообщений.

По поводу отключить.
В ранних версиях qt4, событие "закрытие последнего окна", приходилось соединят с выходом - руками.
Сейчас как это zделанно я не интересовалсо.
Записан
IPFreely
Гость
« Ответ #3 : Январь 24, 2008, 17:14 »

спасибо!
блин! гдето на форумах буквально недавно натыкался на похожую ситуацию(когда объект объявлен локально) и про себя смеялся - как можно быть таким невнимательным...и сам наступил на этиже грабли :-) бывает же!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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