QtWebkit и QWebElement - получить пользовательский ввод? - PullRequest
4 голосов
/ 09 сентября 2010

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

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");
      }       
   }

}

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

Ответы [ 2 ]

6 голосов
/ 14 сентября 2010

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

qDebug() << "element.attribute value:" << element.evaluateJavaScript("this.value").toString();
1 голос
/ 09 сентября 2010

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

...