Skip to content
  • 0 Votes
    21 Posts
    3k Views
    S

    @raven-worx doing a shadow build in a parallel directory (instead of build inside the source folder), the tslib support has been added succesfully (the reason is a mistery for now). The make process gives other errors, but the tslib subject is solved. Thank you.

  • 0 Votes
    2 Posts
    1k Views
    J

    I figured out my issue.

    I set the following environment variable:

    QT_QPA_EGLFS_DISABLE_INPUT=1

    Of course, the cursor dissapears, but when pressing around my Gui running on the Compositor I'm not noticing any buttons being pressed except when I press in them, so that's definitely preferred to a wonky cursor!

  • 0 Votes
    9 Posts
    3k Views
    N

    @MicHes
    Hey i have same problem. I use qt 6.3.0 pyside6.
    This bug occurs when you open new dialog and set atrribute qt::WA_DeleteOnClose

    For temporaly i fixed this issue, i removed this attribute and set all dialogs like a main class attrubute.
    So dont remove any c++ object and it ll fixed but i think its awful fix. I need solution too but i couldnt find anything about this.

  • qt and tslib configuration

    Unsolved Mobile and Embedded
    2
    0 Votes
    2 Posts
    3k Views
    R

    have you add "LIBS += -lts" in your pro file?

  • 0 Votes
    3 Posts
    8k Views
    M

    Driver was the the right way to go, thanks for pointing this out.

    It turns out that the driver had a calibration method built in, but the transform matrix was not set to change the coordinates. I calculated the new matrix values based on the max coordinates displayed by evtest and the actual coordinates of the framebuffer, plugged them in to the driver code, compiled and ... it works!. Evtest displays correct coordinates and Qt works correctly with no tslib.
    I don't like the fact that calibration matrix is hardcoded into the driver, but I consider fixing this an extracredit activity to be done sometime in the future.

  • 0 Votes
    11 Posts
    4k Views
    MhM93M
    no the same one.
    first i run my program . it doesn't work. then run ts_calibrate but it works. then run demo in mini2440 but the touch was worked, but when i run the example of the Qt4.6.3 in example folder (/opt/qt....4.6.3/example/...) the touch doesn't work. all of them in one console.
    these are my system info:
    [root@FriendlyARM /udisk]# cd /dev/input/
    [root@FriendlyARM input]# ls
    event0 mice

    [root@FriendlyARM input]# cat event0
    7�G7H�7!H7��7&am
    p;#65533;��7��7.�

    after each touch show me characters like these(my touch work)

    ===============================================

    i change this to:
    export QWS_MOUSE_PROTO="tslib:/dev/input/event0
    IntelliMouse:/dev/input/mice"
    but nothing happen.

  • 0 Votes
    6 Posts
    4k Views
    MhM93M

    I find the reason:
    in these way this error occurred :
    1- the permission of file : the output of tslib should has full permission :chmod -R 777 /.../.../tslib
    2- the address of tslib is wrong. if you write wrong address this error display
    3-if you install tslib successfully , and then remove it and install it gain this error show you. i change my linux and install another one but should clean all the tslib file and details.

  • 0 Votes
    2 Posts
    1k Views
    L

    Solved

    add to .pro :
    CONFIG += plugin static
    QTPLUGIN += qtslib qevdevkeyboard qevdevmouse qevdevtablet qevdevtouch

    Run (active all input device):
    $./test -plugin tslib -plugin evdevmouse -plugin evdevkeyboard

    :-)

    Static Plugin

  • 0 Votes
    3 Posts
    2k Views
    L
    add -tslib and recompile qt and chart example but not solved ! ./configure -prefix /opt/installed/arm/QtEmbededd-5.4-static-tiny210/ -opensource -confirm-license -no-xcb -xplatform linux-arm-gnueabi-g++ -nomake examples -feature-THREAD -feature-CONCURRENT -feature-SOUND -feature-EFFECTS -no-openssl -lpthread -optimized-qmake -no-cups -qt-zlib -static -qt-libjpeg -qt-libpng -qt-sql-sqlite -qpa linuxfb -linuxfb -tslib

    export TSLIB_FBDEVICE='/dev/fb0'
    export TSLIB_TSDEVICE=/dev/touchscreen-1wire
    export TSLIB_PLUGINDIR='/usr/lib/ts'
    export TSLIB_CONFFILE='/etc/ts.conf'
    export TSLIB_CALIBFILE='/etc/pointercal'
    export TSLIB_CONSOLEDEVICE='none'
    export TSLIB_TSEVENTTYPE='INPUT'

    export QT_DEBUG_PLUGINS=1 cat /dev/touchscreen-1wire | hexdump
    0000000 0fff 0fff 07c6 8629 07c5 8626 07c5 8626
    0000010 0fff 0fff 0966 85bb 096c 85b9 0968 85a8
    0000020 0968 85a8 0fff 0fff 0964 85ba 0938 85a9
    0000030 08ba 8571 085d 8559 07a1 8573 0736 8599

    $chartthemes -platform linuxfb -plugin tslib
    QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
    QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
    QFactoryLoader::QFactoryLoader() ignoring "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2" since plugins are disabled in static buils
    QFactoryLoader::QFactoryLoader() ignoring "org.qt-project.Qt.QPlatformInputContextFactoryInterface" since plugins are disabled in static builds
    QFactoryLoader::QFactoryLoader() ignoring "org.qt-project.Qt.QGenericPluginFactoryInterface" since plugins are disabled in static builds
    QFactoryLoader::QFactoryLoader() ignoring "org.qt-project.Qt.QStyleFactoryInterface" since plugins are disabled in static builds

  • 0 Votes
    2 Posts
    909 Views
    SGaistS

    Hi and welcome to devnet,

    Something strange for sure. The implementation of the Linux framebuffer integration has changed quite a bit in 5.5. You should take a look at the bug report system to see if it's something known.

  • 0 Votes
    3 Posts
    8k Views
    S

    @phil999
    I too have struggled with getting the Tslib touchscreen implementation to work. I've spent a lot of time sprinkling print statements around in the Qt code figuring out what is going on. What I've learned is this:

    Tslib and Evdev are separate implementations that are NOT equivalent. The Tslib implementation was developed for single touch (generally resistive) touchscreens while the Evdev implementation was developed for multi-touch (generally capacitive) touchscreens. For single touch screens, every action possible can be characterized as an equivalent mouse operation and that is what Tslib does. (Note that the Tslib plugin calls handleMouseEvent, not handleTouchEvent). Conversely the Evdev implementation does handle multi-touch which has no mouse equivalent so Evdev characterizes the touchscreen events as touch events.

    You MUST get your touchscreen properly calibrated so that the coordinates are within the screen dimensions. Mouse events will only be reported to an object if they are within the object. Try recalibrating the touchscreen (ts_calibrate) and then run ts_test to be sure the touchscreen operation is correct. (We found that some versions of ts_calibrate don't work correctly and made some changes in the code ourselves.)

    Event type 50 is a notifier event that I believe is triggering the QTsLibMouseHandler::readMouseData(). You can ignore these.

    Your event filter should be looking for Mouse events. Probably these will be GraphicsSceneMousePress, GraphicsSceneMouseRelease, GraphicsSceneMouseMove, GrabMouse and UngrabMouse. (But this is object dependent.) I was using the qtbase/examples/touch/knobs application for test and debug and in the Knob::sceneEvent() function in knob.cpp, I changed the case statement to look for those 5 events. On a touch-drag-release I typically see the following sequence:

    GrabMouse
    GraphicsSceneMousePress

    A variable number of GraphicsSceneMouseMove

    GraphicsSceneMouseRelease
    UngrabMouse

    Be sure to intercept these events and not call the default QGraphicsItem::sceneEvent() handler. It will inhibit seeing all of the above events except the initial GrabMouse and GraphicsSceneMousePress

    Hope this helps!