Название: setHtml Qt 4.7.0 Отправлено: Cccr от Октябрь 15, 2010, 21:22 Привет всем!
Извините если поднимаю вопрос повторно, не нашел нужный тред. udp: ЕСТЬ КОД: #include "formextractor.h" #include <QWebElement> FormExtractor::FormExtractor(QWidget *parent, Qt::WFlags flags) : QWidget(parent, flags) { ui.setupUi(this); ui.webView->setUrl(QUrl("qrc:/form.html")); connect(ui.webView->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(populateJavaScriptWindowObject())); resize(300, 300); } FormExtractor::~FormExtractor() { } void FormExtractor::submit() { exit(1); } void FormExtractor::populateJavaScriptWindowObject() { ui.webView->page()->mainFrame()->addToJavaScriptWindowObject("formExtractor", this); } /form.html содержит Method 1 НЕ ВЫЗЫВАЕТ СЛОТ <FORM> <INPUT TYPE="button" VALUE="Click Here to Write to Me" onClick="FormExtractor.submit()"> </FORM> Method 2 <form onsubmit="formExtractor.submit()"><input type="submit" value="Submit"></form> первый случай слот submit не вызывает, второй работает нормально. Скажите плз в чем причина, почему в первом случае слот не вызывается? ps: код - это пример, чтобы пояснить проблему. Название: Re: setHtml Qt 4.7.0 Отправлено: marbius от Октябрь 16, 2010, 03:53 void FormExtractor::populateJavaScriptWindowObject() { ui.webView->page()->mainFrame()->addToJavaScriptWindowObject("formExtractor", this); } /form.html содержит Method 1 НЕ ВЫЗЫВАЕТ СЛОТ <FORM> <INPUT TYPE="button" VALUE="Click Here to Write to Me" onClick="FormExtractor.submit()"> </FORM> Method 2 <form onsubmit="formExtractor.submit()"><input type="submit" value="Submit"></form> formExtractor и FormExtractor - разные объекты Название: Re: setHtml Qt 4.7.0 Отправлено: Cccr от Октябрь 16, 2010, 08:33 код поменял устанавливаю рабочий код через ui.webView->setUrl(QUrl("qrc:/form.html"));
все работает СПАСИБО за то что заметили ошибку. но вот проблема остается с setHtml QString Html = "<FORM><INPUT TYPE=\"button\" VALUE=\"Click Here\" onClick=\"formExtractor.submit()\"></FORM>"; ui.webView->setHtml(Html); и слот не вызывается. Название: Re: setHtml Qt 4.7.0 Отправлено: marbius от Октябрь 16, 2010, 10:23 Вызывайте QWebView::setHtml после того, как присоединили сигнал javaScriptWindowObjectCleared.
Делайте так: Код
А не так: Код
Должно заработать. Название: Re: setHtml Qt 4.7.0 Отправлено: Cccr от Октябрь 16, 2010, 11:11 СПАСИБО ОГРОМНОЕ!))
но все таки странно что в новой версии (4.7.0) так надо делать, в старых работало и так=))) |