Results 1 to 3 of 3

Thread: Assert failure with tablet installed

  1. #1
    Join Date
    Oct 2009
    Posts
    7
    Thanks
    3
    Platforms
    Windows

    Default Assert failure with tablet installed

    I'm getting this error message when running a debug version of my program:

    File: global\qglobal.cpp
    Line: 2262

    ASSERT failure in Qt::Internal: "There is no packet queue for the tablet. The tablet will not work", file kernel\qwidget_win.cpp, line 222

    If I ignore the error the program runs fine and if I compile a release build the error doesn't happen.

    The error just popped up after I installed a wacom tablet, without even recompiling the program. My program doesn't use a tablet, or any functions related to a tablet. Nor do I want it to. I'm not sure why Qt is trying to find a packet queue for the tablet. How do I stop it from doing this?

  2. #2
    Join Date
    Jan 2006
    Location
    Munich, Germany
    Posts
    4,714
    Thanks
    21
    Thanked 418 Times in 411 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows

    Default Re: Assert failure with tablet installed

    Q_ASSERT are given out only in debug version, when QT_NO_DEBUG is not defined (which I guess you didn't, why should you?).
    Which is also the reason the release build is silent.
    So you can just define QT_NO_DEBUG - but then all debug messages will not be given.

    If it really bothers you you can rebuild Qt with the -no-tablet option.

    If this is an application you plan to distribute to users, then I guess you will be packaging only the release version, so no problems.

    However I must admit, I am not so sure why now that Qt can find the wacom driver, that it has a problem, and without a driver it was silent.
    ==========================signature=============== ==================
    S.O.L.I.D principles (use them!):
    https://en.wikipedia.org/wiki/SOLID_...iented_design)

    Do you write clean code? - if you are TDD'ing then maybe, if not, your not writing clean code.

  3. #3
    Join Date
    Nov 2010
    Posts
    315
    Thanked 53 Times in 51 Posts
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows Symbian S60 Maemo/MeeGo

    Default Re: Assert failure with tablet installed

    all assertion are just information for developer that some assumption is not met in code so code should be verified and fixed.
    That is why in release assertions are disabled.
    IMHO you should investigate what is the problem.
    See this source file: qwidget_wince.cpp
    Qt Code:
    1. // Set the size of the Packet Queue to the correct size...
    2. int currSize = ptrWTQueueSizeGet(qt_tablet_context);
    3. if (!ptrWTQueueSizeSet(qt_tablet_context, QT_TABLET_NPACKETQSIZE)) {
    4. // Ideally one might want to use a smaller
    5. // multiple, but for now, since we managed to destroy
    6. // the existing Q with the previous call, set it back
    7. // to the other size, which should work. If not,
    8. // there will be trouble.
    9. if (!ptrWTQueueSizeSet(qt_tablet_context, currSize)) {
    10. Q_ASSERT_X(0, "Qt::Internal", "There is no packet queue for"
    11. " the tablet. The tablet will not work");
    12. }
    13. }
    To copy to clipboard, switch view to plain text mode 

Similar Threads

  1. tablet events broken in X
    By aalexei in forum Qt Programming
    Replies: 2
    Last Post: 9th May 2009, 14:15
  2. Problem debugging Assert failure.
    By Doug Broadwell in forum Qt Programming
    Replies: 3
    Last Post: 3rd January 2009, 19:39
  3. Debugging ASSERT failure in Qt header.
    By Doug Broadwell in forum Qt Programming
    Replies: 6
    Last Post: 27th December 2008, 02:40
  4. Qt4.4 on Windows XP Tablet PC edition
    By proto in forum Qt Programming
    Replies: 3
    Last Post: 9th July 2008, 08:30
  5. QWT assert failure
    By Andimat in forum Qwt
    Replies: 1
    Last Post: 21st June 2007, 15:36

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.