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()"/>
一切我已閱讀叫說,這是爲了做到這一點,但它不是爲我工作。