[SOLVED]- QWebKit - connect a web button to a Qt slot

  • I am trying to follow the tutorial" here":http://qt-project.org/doc/qt-4.8/webkit-imageanalyzer.html

    In my mainWindow, I create an custom Object
    @settingsObject = new SettingsObject(this); @

    My QWebView is connected to to this slot :
    @ QObject::connect(ui->webView_settings->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()),
    this, SLOT(addJSObject()));
    void MainWindow::addJSObject() {
    ui->webView_settings->page()->mainFrame()->addToJavaScriptWindowObject(QString("settingsObject"), settingsObject);

    My web button :
    normal button with onclick = analyzeImages()

    My J_avascript :
    function connectSlots()
    if ( !connected ) {
    connected = true;
    settingsObject.foundSensorHr.connect(this, found);

    function found() {


    function analyzeImages()

    // window.alert("sometext"); ///get called, problem is not here

    My custom object "SettingsObjects"


    #include <QObject>

    class SettingsObject : public QObject

    explicit SettingsObject(QObject *parent = 0);

    public slots:
    void searchSensorHr();

    void foundSensorHr();
    #endif // SETTINGSOBJECT_H@


    @/// Slot
    void SettingsObject::searchSensorHr() {

    qDebug() << "search Sensor Hr";
    emit foundSensorHr();


    However when I click the button, the Qt slot doesn't seem to be called (nothing is printed in the console).
    I have tested the javascript with an alert and it's called, so there must be a problem with the link from the button to the Qt slot. Will pay you 5000 dogecoins if you help me find the problem! :)

  • Update: I can get the slot to fire if I comment :
    connectSlots() in analyseImage();

    still investigating, look promising

    Edit: Woot got it, Forgot to initialize the value of the variable "connected" in the script
    connected = false;

    Thanks Qt this thing is awesome redoing all my interface with QWebKit so much easier

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.