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. Replace text smiley with images in QListView
Forum Updated to NodeBB v4.3 + New Features

Replace text smiley with images in QListView

Scheduled Pinned Locked Moved General and Desktop
16 Posts 4 Posters 5.7k 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.
  • raven-worxR Offline
    raven-worxR Offline
    raven-worx
    Moderators
    wrote on last edited by
    #6

    is this really your code?
    @
    QString textMessage ="hello <imgsrc="../emoticons/cute.png">"";
    @
    if so change it to:
    @
    QString textMessage ="hello <img_src="../emoticons/cute.png">"";
    @
    You are missing the space (forum doesn't like it so i inserted an underscore) between "img" and "src".

    --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
    If you have a question please use the forum so others can benefit from the solution in the future

    1 Reply Last reply
    0
    • P Offline
      P Offline
      psbhardwaj09gmail.com
      wrote on last edited by
      #7

      Hi

      In my case QString textMessage ="hello <img_src="../emoticons/cute.png">""; is not the problem.

      textMessage is not getting displayed in messageRect.

      but when i am using
      @doc->drawContents(painter); @

      instead of
      @doc->drawContents(painter, messageRect);@
      textMessage is displaying in QListView. But there is also a problem that when i again add another message to list then it gets overlapped with old one.

      Rgds,
      Pardeep

      Pardeep Sharma

      1 Reply Last reply
      0
      • raven-worxR Offline
        raven-worxR Offline
        raven-worx
        Moderators
        wrote on last edited by
        #8

        ok i see ... try this:
        @
        void ConversationViewItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option) const
        {
        painter->save();
        ....
        painter->translate( option.rect.topLeft() );

         QTextDocument *doc = new QTextDocument();
               doc->setHtml(textMessage);
                doc->drawContents(painter, messageRect);
         painter->restore();
        

        }
        @

        --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
        If you have a question please use the forum so others can benefit from the solution in the future

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #9

          To add to raven_worx, are you sure that your images can be found ? Using relative path can be tricky

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • P Offline
            P Offline
            psbhardwaj09gmail.com
            wrote on last edited by
            #10

            Hi SGalst,

            Image is not issue, i am able to find image.

            Pardeep Sharma

            1 Reply Last reply
            0
            • raven-worxR Offline
              raven-worxR Offline
              raven-worx
              Moderators
              wrote on last edited by
              #11

              and the translation of the painter? did it work?

              --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
              If you have a question please use the forum so others can benefit from the solution in the future

              1 Reply Last reply
              0
              • Z Offline
                Z Offline
                zgulser
                wrote on last edited by
                #12

                Hi fellas,

                Anyone solved or know how to this exactly the same problem I have?

                1 Reply Last reply
                0
                • raven-worxR Offline
                  raven-worxR Offline
                  raven-worx
                  Moderators
                  wrote on last edited by
                  #13

                  [quote author="zgulser" date="1387383975"]
                  Anyone solved or know how to this exactly the same problem I have?[/quote]

                  How should anyone even know what problem you have?!

                  --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
                  If you have a question please use the forum so others can benefit from the solution in the future

                  1 Reply Last reply
                  0
                  • Z Offline
                    Z Offline
                    zgulser
                    wrote on last edited by
                    #14

                    I meant the problem presented in this thread

                    1 Reply Last reply
                    0
                    • raven-worxR Offline
                      raven-worxR Offline
                      raven-worx
                      Moderators
                      wrote on last edited by
                      #15

                      the thread author stopped responding in this thread...
                      Maybe you can provide a minimal compileable example. I am pretty sure it's a small thing missing to make the example form above to work.

                      --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
                      If you have a question please use the forum so others can benefit from the solution in the future

                      1 Reply Last reply
                      0
                      • Z Offline
                        Z Offline
                        zgulser
                        wrote on last edited by
                        #16

                        Ok raven. Here is the part of the code that is working but not as expected;

                        @
                        ....

                        QRect messageContentRect = messageFontMetrics.boundingRect(textOffset4,
                        rect.top() + textHeightInPixels + 13,
                        rect.width() - (textOffset
                        4) - dateTimeTextWidthInPixels - 5 - 10 , 0,
                        Qt::AlignLeft | Qt::AlignTop | Qt::TextWrapAnywhere,
                        messageContent);

                        painter->setPen(QColor("#363636"));
                        messageContent = smilifyMessage(messageContent);
                        QTextDocument *doc = new QTextDocument();
                        doc->setHtml(messageContent);
                        //painter->drawText(messageContentRect, Qt::AlignLeft | Qt::AlignTop |Qt::TextWrapAnywhere, //messageContent, &actuallyUsedRectForMessage);
                        doc->drawContents(painter, messageContentRect);

                            ....
                        

                        @

                        QPainter::drawText () is working as expected and messages shown in the view. But if I use QTextDocument::drawContents() method instead, then messages are not shown.

                        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