QtWebkit и QWebElement — получить пользовательский ввод?

как я могу получить пользовательский ввод в поле ввода?

QObject::connect( webView, SIGNAL(loadStarted()), this, SLOT(slotLoadStarted()) );
void slotLoadStarted()
{
   QWebFrame *frame = webView->page()->currentFrame();

   if (frame!=NULL)
   {
      QWebElementCollection collection = frame->findAllElements("input[name=email]");

      foreach (QWebElement element, collection)
      {
        qDebug() << "element.toOuterXml" << element.toOuterXml();
        qDebug() << "element.attribute value:" << element.attribute("value");
      }       
   }

}

если я устанавливаю атрибут, он работает, но я хочу поймать пользовательский ввод, есть идеи?


person Kenni    schedule 08.09.2010    source источник


Ответы (2)


Вы можете использовать QWebElement::evaluateJavaScript().

qDebug() << "element.attribute value:" << element.evaluateJavaScript("this.value").toString();
person Jakub Wieczorek    schedule 13.09.2010

Кажется, в этой проблеме есть ошибка. Я предполагаю, что одним из способов обойти эту проблему было бы создание обработчика событий onKeyPress в JavaScript, который будет обновлять некоторый скрытый элемент с измененным значением, которое вы используете для чтения значения из кода Qt.

person teukkam    schedule 09.09.2010