Button onClick not firing for touchscreen devices



  • Using that latest Qt 5.1.2, a button onclick event is not firing when run on a Windows 8 touchscreen. Using Qt 5.0, it fires just fine.

    To reproduce, just create the html5application test app and change your index.html to be this:

    @<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xml:lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
    body { margin: 0; font-size: 2em; background-color: white; }
    h1 { text-align: center; color: red; }
    h1 + h1 { color: green; }
    h1:last-child { color: blue; }
    #quit { background-color: gray; color: white; font-weight: bold; display: block; text-align: right; }
    </style>
    [removed]
    var counter = 0;
    function toggleElement()
    {
    var elements = document.getElementsByTagName('h1');
    for (var i = 0; i < elements.length; ++i)
    elements[i].style.display = (counter % elements.length) == i ? '' : 'none';
    counter++;
    setTimeout('toggleElement()', 1000);
    }
    window.onload = function()
    {
    document.getElementById("quit").onmousedown = function()
    {
    Qt.quit();
    };
    toggleElement();
    }
    function clicked()
    {
    alert("Clicked");
    }
    [removed]
    </head>
    <body>
    <a id="quit">X</a>
    <h1>Hello</h1>
    <h1>HTML5</h1>
    <h1>World</h1>
    <p><button type="button" >Click Me!</button></p>
    </body>
    </html>
    @

    Works fine when compiled with 5.0 (you see the javascript alert when you touch the button) but nothing shows up on the tablet when compiled against the latest Qt.



  • Still not sure why this is firing - I didn't have the patience to find out how it was all supposed to work by looking at the source code - but I did find a work around. I just turn off all touch events:
    @
    vww_ui->webView->setAttribute(Qt::WA_AcceptTouchEvents, false);
    @
    Not really the best solution, but as we don't currently do anything with them, it works for us (for now).


Log in to reply
 

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