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. How to change font weight at various locations within a QTextEdit

How to change font weight at various locations within a QTextEdit

Scheduled Pinned Locked Moved Solved General and Desktop
22 Posts 2 Posters 10.1k Views
  • 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.
  • mrjjM Offline
    mrjjM Offline
    mrjj
    Lifetime Qt Champion
    wrote on last edited by
    #12

    good found.
    well a newline is \n\r on windows.
    so maybe thats why with 2.

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mulfycrowh
      wrote on last edited by
      #13

      Hi folks !

      I open this topic again because I get a weird thing.
      Here is what I wrote:

      void Tools::toHtml(QPlainTextEdit* edit, int location, int charcount, int red, int green, int blue, int fontsize, bool bold, bool underlined)
      {
      	QTextCursor cursor(edit->document());
      	QString highlight;
      	QString sfont_beg = "<FONT ";
      	QString sfont_end = "</FONT>";
      	QString scolor = "color=#" + toHexString(red) + toHexString(green) + toHexString(blue) + " ";
      	QString sbold = "span style=font-weight:bold ";
      	QString sunderlined = "span style=text-decoration:underline ";
      	QString ssize = "size=" + QString::number(fontsize) + ">";
      	QString sHtml;
      
      	cursor.setPosition(location, QTextCursor::MoveAnchor);
      	cursor.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor, charcount);
      	highlight = cursor.selectedText();
      	sHtml = sfont_beg + scolor.toUpper();
      	if (bold)
      		sHtml = sHtml.append(sbold);
      	if (underlined)
      		sHtml = sHtml.append(sunderlined);
      	sHtml = sHtml + ssize + highlight + sfont_end;
      	cursor.insertHtml(sHtml);
      
      }
      

      I call the function here:

      m_tools->toHtml(m_descriptionPlainTextEdit, 0, 17 + msg_description.length(), 0, 133, 255, 25, false, false);
      

      The title that has to be highlighted in blue has a length equal to 17 + msg_description.length().
      Everything perfectly runs the first time, not the following ones : all the text in the text edit is highlighted in blue.
      I don't see any trouble.

      PS: the text edit is cleared each time.

      Many thanks for help !

      1 Reply Last reply
      0
      • mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #14

        Hi
        ïf you put edit->clear();
        in top, it really should do the same each time.

        M 1 Reply Last reply
        0
        • mrjjM mrjj

          Hi
          ïf you put edit->clear();
          in top, it really should do the same each time.

          M Offline
          M Offline
          mulfycrowh
          wrote on last edited by
          #15

          @mrjj Hi ! What do you mean in top ? In toHtml ? It would delete all the content.

          mrjjM 1 Reply Last reply
          0
          • M mulfycrowh

            @mrjj Hi ! What do you mean in top ? In toHtml ? It would delete all the content.

            mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by mrjj
            #16

            @mulfycrowh
            Well you said
            "PS: the text edit is cleared each time."
            So I assumed you meant pr call to the function.

            If all becomes blue it sounds like all is one paragraph.

            You might need to use <p > </p> if the end result is something like

            M 1 Reply Last reply
            0
            • mrjjM mrjj

              @mulfycrowh
              Well you said
              "PS: the text edit is cleared each time."
              So I assumed you meant pr call to the function.

              If all becomes blue it sounds like all is one paragraph.

              You might need to use <p > </p> if the end result is something like

              M Offline
              M Offline
              mulfycrowh
              wrote on last edited by
              #17

              @mrjj The idea sounds interesting. I'll test it.
              But why everything OK the first time and all the text blue with big size font the other ones ?
              It acts as the QTextEdit keeps backup of something.
              Thanks again !

              mrjjM 1 Reply Last reply
              0
              • M mulfycrowh

                @mrjj The idea sounds interesting. I'll test it.
                But why everything OK the first time and all the text blue with big size font the other ones ?
                It acts as the QTextEdit keeps backup of something.
                Thanks again !

                mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by
                #18

                @mulfycrowh

                • But why everything OK the first time and all the text blue with big size font the other ones ?

                I have not check output of the code but I assume it becomes
                one big paragraph and therefore it is all blue.

                But only way to tell is to see the generated HTML. step by step.

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  mulfycrowh
                  wrote on last edited by
                  #19

                  I added the following lines to toHtml ant it runs !

                  cursor.setPosition(charcount, QTextCursor::MoveAnchor);
                  cursor.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor, edit->document()->characterCount());
                  highlight = cursor.selectedText();
                  sHtml = "<FONT face=\"Arial\" font-weight=\"normal\" COLOR=#000000 size=\"3\">" + highlight + "</FONT>";
                  cursor.insertHtml(sHtml);
                  
                  1 Reply Last reply
                  1
                  • M Offline
                    M Offline
                    mulfycrowh
                    wrote on last edited by
                    #20

                    Nevertheless, I do not understand size=3 because, in the constructor I wrote:

                    	font.setPointSize(10);
                    

                    Why 3 instead 10 ?

                    3 gives the same size.

                    mrjjM 1 Reply Last reply
                    0
                    • M mulfycrowh

                      Nevertheless, I do not understand size=3 because, in the constructor I wrote:

                      	font.setPointSize(10);
                      

                      Why 3 instead 10 ?

                      3 gives the same size.

                      mrjjM Offline
                      mrjjM Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on last edited by mrjj
                      #21

                      @mulfycrowh
                      Not sure what unit "size" is in. Could be an index to a list.
                      so its size "3".

                      M 1 Reply Last reply
                      0
                      • mrjjM mrjj

                        @mulfycrowh
                        Not sure what unit "size" is in. Could be an index to a list.
                        so its size "3".

                        M Offline
                        M Offline
                        mulfycrowh
                        wrote on last edited by
                        #22

                        @mrjj Thank you for everything !

                        1 Reply Last reply
                        1

                        • Login

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