3
我想使用void QWebFrame::addToJavaScriptWindowObject(const QString & name, QObject * object)
。我的问题是,当我尝试调用该函数在JavaScriptQT使用addToJavaScriptWindowObject()
TypeError: Result of expression 'screen.valueChanged' [undefined] is not a function.
TimeSliceScreen::TimeSliceScreen(QWidget* parent)
:
QWidget(parent)
{
QVBoxLayout* layout = new QVBoxLayout(this);
_timeSlice = new QWebView(this);
_timeSlice->setMinimumSize(200,200);
QSizePolicy policy = _timeSlice->sizePolicy();
policy.setVerticalStretch(3);
_timeSlice->setSizePolicy(policy);
_timeSlice->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
_timeSlice->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
layout->addWidget(_timeSlice);
layout->addStretch();
layout->addSpacing(20);
_timeSlice->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
interface = new WebPageInterface();
connect(_timeSlice->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()),
this, SLOT(populateJavaScriptWindowObject()));
}
void TimeSliceScreen::populateJavaScriptWindowObject(){
_timeSlice->page()->mainFrame()->addToJavaScriptWindowObject(QString("screen"),
interface);
}
WebPageInterface
是延伸QObject
,并呼吁valueChanged
一个插槽,是我想调用的函数一个非常简单的类。
我的JavaScript是:
function call() {
screen.valueChanged();
}
它会从
<input type="hidden" id="maxhid" name="maxhid" value="{maxSlider}" onchange="call()"/>
一切我已阅读叫说,这是为了做到这一点,但它不是为我工作。