crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Выполнение скрипта из QWebView, QWebView, QtScript, JavaScript
Snake174
  опции профиля:
сообщение 25.9.2012, 8:07
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 18.4.2011
Из: Миасс
Пользователь №: 2613

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




Репутация:   0  


Всем привет.
Имеется такая заготовка страницы:
<html>
<head>
  <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
  <script type='text/javascript'>
    function ShowForm()
    {
      var type = ShowForm.arguments[0];
      var ID = ShowForm.arguments[1];
          
      NewForm.ShowForm( type, ID );
    }
  </script>
</head>
<body>
  <img src='...' border='0' width='20' height='20' onClick='ShowForm(0,1)'>
</body>
</html>

Загружаю её в QWebView с помощью setHtml().
NewForm - форма, у которой нужно вызвать слот ShowForm( type, ID ).
NewForm *form = new NewForm( this );
QScriptValue obj = engine->newQObject( form );
engine->globalObject().setProperty( "NewForm", obj );

Вопрос такой: Можно ли вызвать слот у формы NewForm при щелчке на изображении <img src='...' border='0' width='20' height='20' onClick='ShowForm(0,1)'>?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Snake174
  опции профиля:
сообщение 25.9.2012, 10:27
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 18.4.2011
Из: Миасс
Пользователь №: 2613

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




Репутация:   0  


Сделал this->page()->mainFrame()->addToJavaScriptWindowObject( "Web", this );
В скрипте:
function ShowForm()"
{
  var type = ShowCF.arguments[0];"
  var ID = ShowCF.arguments[1];"
  
  Web.runScript( type, ID );"
}

А в слоте runScript:
engine->evaluate( QString("NewForm.ShowForm( %1 )").arg( ID ) );

И всё заработало как надо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.3.2024, 2:13