Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QObject::connect: Cannot queue arguments of type 'QTextCharFormat'
Forum Updated to NodeBB v4.3 + New Features

QObject::connect: Cannot queue arguments of type 'QTextCharFormat'

Scheduled Pinned Locked Moved General and Desktop
4 Posts 3 Posters 7.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    Devendra
    wrote on last edited by
    #1

    Hello,

    I am trying to do this:

    @QString program = QString::fromUtf8("../helper-functions/Perl/DiscoverNodes");
    QProcess *myprocess = new QProcess(this);

    qRegisterMetaType<QTextCharFormat>("QTextCharFormat");
    qRegisterMetaType<QTextCursor>("QTextCursor");
    
    myprocess->startDetached(program.toStdString().c_str());
    //myprocess->start(program);
    myprocess->waitForFinished();@
    

    However, I get a segfault here:

    @[qstring.h, line 417]:
    // ASCII compatibility
    #ifndef QT_NO_CAST_FROM_ASCII
    inline QT_ASCII_CAST_WARN_CONSTRUCTOR QString(const char *ch) : d(fromAscii_helper(ch))
    {}@

    I have been struggling with it for days now. Also, I do not understand why standard datatypes (such as QTextCharFormat, QTextCursor ) need to be registered. Without registration, I am getting these errors:

    @Starting /home/Morpheus/Documents/Temp/QTCustom/QDAL_Release/QDAL...
    QObject::connect: Cannot queue arguments of type 'QTextCharFormat'
    (Make sure 'QTextCharFormat' is registered using qRegisterMetaType().)
    QObject::connect: Cannot queue arguments of type 'QTextCursor'
    (Make sure 'QTextCursor' is registered using qRegisterMetaType().)
    The program has unexpectedly finished.
    /home/Morpheus/Documents/Temp/QTCustom/QDAL_Release/QDAL exited with code 0@

    I would really appreciate any help. I have taken hints from here: "Nokia Dev":http://harmattan-dev.nokia.com/docs/library/html/qt4/qprocess.html

    Thanks.

    Devendra Rai.

    1 Reply Last reply
    0
    • C Offline
      C Offline
      ChrisW67
      wrote on last edited by
      #2

      Those types cannot be registered by default because they are not in QtCore. See the discussion in QVariant and QMetaType detailed descriptions.

      Which line of your code actually triggered to "segfault"; line 7?
      Have you done complete, clean rebuild of you project?

      1 Reply Last reply
      0
      • L Offline
        L Offline
        lgeyer
        wrote on last edited by
        #3

        [quote author="Devendra" date="1357153801"]
        @
        QString program = QString::fromUtf8("../helper-functions/Perl/DiscoverNodes");
        ...

        myprocess->startDetached(program.toStdString().c_str());
        @
        [/quote]
        QProcess::startDetached() already takes a QString as parameter. Is there any particular reason you are converting it to a std::string and const char * (just to have it implicitly converted back to QString)?

        1 Reply Last reply
        0
        • D Offline
          D Offline
          Devendra
          wrote on last edited by
          #4

          Hello ChrisW67 and Lukas

          First, I changed to:
          @
          QString program = "../helper-functions/Perl/DiscoverNodes";
          QProcess *myprocess = new QProcess(this);

          qRegisterMetaType<QTextCharFormat>("QTextCharFormat");
          qRegisterMetaType<QTextCursor>("QTextCursor");
          
          //myprocess->startDetached(program.toStdString().c_str());
          myprocess->start(program);@
          

          Next, about segfault:

          I did a core dump, and here is the info:

          #0 0x00007f4eb7f04525 in QTextLayout::createLine() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
          #1 0x00007f4eb7f3976a in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
          #2 0x00007f4eb7f413a0 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
          #3 0x00007f4eb7f3fef1 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
          #4 0x00007f4eb7f4040f in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
          #5 0x00007f4eb7f42741 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
          #6 0x00007f4eb7f436c9 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
          #7 0x00007f4eb7f23284 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
          #8 0x00007f4eb7ee443d in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
          #9 0x00007f4eb81080d2 in QTextEdit::append(QString const&) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
          #10 0x0000000000405640 in publish_to_Browser (TB=0x224c5e0, messagetype=3 '\003', message=...) at ../QDAL/PublishtoBrowser.cpp:35
          #11 0x00000000004052d0 in Populate_Browser_WithData (file=..., thisObject=0x7fff0be41460, resourcetype=2 '\002') at ../QDAL/class_discovernodes.cpp:117
          #12 0x00000000004050ca in class_discoverNodes::run (this=0x7fff0be41460) at ../QDAL/class_discovernodes.cpp:61
          #13 0x00007f4eb767baec in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
          #14 0x00007f4eb68d7e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
          #15 0x00007f4eb6e1acbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
          #16 0x0000000000000000 in ?? ()

          I suspect something is wrong with QTextBrowser instance. I still cannot figure out what. If anyone is interested, I can make the project available.

          Thanks!

          Devendra

          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved