Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. General talk
  3. The Lounge
  4. Questions Concerning colorizing text in Ubuntu terminal.
QtWS25 Last Chance

Questions Concerning colorizing text in Ubuntu terminal.

Scheduled Pinned Locked Moved Unsolved The Lounge
62 Posts 6 Posters 12.2k 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.
  • Cougar 0C Offline
    Cougar 0C Offline
    Cougar 0
    wrote on last edited by Cougar 0
    #10

    All I need is this;

    #include "whatever file is/if needed!"
    #include "whatever file is/if needed!"
    
    ( line of code or what's needed)
    
    [Rewrite the following Perl into C++/Qt.]
    {
           {
           "$type = "\e[1m\e[91m$type\e[0m" if ($type =~ 
           m/(fatal|fail|error|stop)/i);# bold red"
           "$type = "\e[91m$type\e[0m" if ($type 
             =~m/(refused|nodevice|timeout)/i);  # red" 
           }
    }
    

    The Qt5 code written completely that would replace the Perl lines of code above that highlights those 4 words in Bold Red and those 3 words in Red in a ubuntu terminal.
    Once I have those 4 + 3 words highlighted in Bold Red and Red in terminal working, I can add the other words and colors to the file.
    I hope I explained it for you.

    JonB, thank you for offering to rewrite all 10 Perl lines into C++/Qt5 for me at no charge. Really, thank you so very much!
    But if you could do just those two lines, then I can finish it and learn a little!
    Again Thanks!

    Cougar

    1 Reply Last reply
    0
    • Cougar 0C Cougar 0

      Amin, if this is against forum rules please delete!
      After trying to get this to work I realize I'm too old, blind, deaf, with bad health to do this.
      I would be willing to pay someone via PayPal to help me get this to work.
      If interested please contact me at wpt1114 at yahoo.com to discuss the details.
      Thanks!

      SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by SGaist
      #11

      @Cougar-0 said in Questions Concerning colorizing text in Ubuntu terminal.:

      Amin, if this is against forum rules please delete!

      It's a banner shown to everybody, you did nothing wrong.

      From the top of my head something as below:.

      WARNING THIS IS WRONG AND LEFT FOR EDUCATIONAL PURPOSE
      #include <QRegularExpression>
      
      void printColorized(const QString& text)
      {
          QString toPrint;
          if (text.contains(QRegularExpression("(fatal|fail|error|stop)")) {
              toPrint = QString("\e[1m\e[91m%1\e[0m").arg(text);
      }
          if (text.contains(QRegularExpression("(refused|nodevice|timeout)"))) {
              toPrint = QString("\e[91m%1\e[0m").arg(text);
      }
      qDebug() << toPrint;
      }
      

      Here is the correct way to trigger the colorization of the terminal manually:

      #include <QRegularExpression>
      #include <QCoreApplication>
      #include <QString>
      #include <QtDebug>
      
      void printColorized(const QString& text)
      {
          if (text.contains(QRegularExpression("(fatal|fail|error|stop)"))) {
          qDebug() << "\e[1m\e[91m" << text << "\e[0m";
      }
          if (text.contains(QRegularExpression("(refused|nodevice|timeout)"))) {
              qDebug() << "\e[91m" << text << "\e[0m";
      }
      }
      

      [add fixed version as the original will just print the QString content SGaist]

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

      Cougar 0C 1 Reply Last reply
      4
      • Cougar 0C Offline
        Cougar 0C Offline
        Cougar 0
        wrote on last edited by
        #12

        SGaist, Thank you so much I will give this a try!

        Cougar

        1 Reply Last reply
        0
        • Cougar 0C Offline
          Cougar 0C Offline
          Cougar 0
          wrote on last edited by Cougar 0
          #13

          After several tries with using the code above, I have had no success in getting it to work.
          More info about my project.
          My friend Tim is the true genius in this. I'm just an old man. It is his Perl and Qt code.
          He is so busy with work, school and family, 25 hours a day, 8 days a week!
          I was hoping to surprise him with getting the color text working in the terminal.
          I told him what I was doing and he told me the reason he did not pursue the color text in Qt was because the color text in Perl messed with his log files, besides I am the one who misses the color text.
          Here is links to the masterserver website and qt5 source code.
          http://333networks.com/
          http://git.333networks.com/MasterServer-Qt5/
          Tim suggested I write a "Hello World" project implementing color text.
          If anyone has or knows of any links to "Hello World" examples with text in color using Qt Creator please post.
          He said he was not sure if Qt supports color text in terminal output like Perl does.
          I will keep at this besides it gives me something to do, it's all for kicks and giggles for me.
          I wish I had 5 years to take a course to learn all of this or a personal instructor to teach me.
          If anyone feels I owe them please contact me through my email above.
          Thanks for all those who helped!
          My desk,
          alt text
          If interested my masterserver website:
          gonespy.com!

          Cougar

          jsulmJ 1 Reply Last reply
          0
          • Cougar 0C Cougar 0

            After several tries with using the code above, I have had no success in getting it to work.
            More info about my project.
            My friend Tim is the true genius in this. I'm just an old man. It is his Perl and Qt code.
            He is so busy with work, school and family, 25 hours a day, 8 days a week!
            I was hoping to surprise him with getting the color text working in the terminal.
            I told him what I was doing and he told me the reason he did not pursue the color text in Qt was because the color text in Perl messed with his log files, besides I am the one who misses the color text.
            Here is links to the masterserver website and qt5 source code.
            http://333networks.com/
            http://git.333networks.com/MasterServer-Qt5/
            Tim suggested I write a "Hello World" project implementing color text.
            If anyone has or knows of any links to "Hello World" examples with text in color using Qt Creator please post.
            He said he was not sure if Qt supports color text in terminal output like Perl does.
            I will keep at this besides it gives me something to do, it's all for kicks and giggles for me.
            I wish I had 5 years to take a course to learn all of this or a personal instructor to teach me.
            If anyone feels I owe them please contact me through my email above.
            Thanks for all those who helped!
            My desk,
            alt text
            If interested my masterserver website:
            gonespy.com!

            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by jsulm
            #14

            @Cougar-0 said in Questions Concerning colorizing text in Ubuntu terminal.:

            I have had no success in getting it to work

            Can you show the code?
            I think you need to escape the \
            Like:

            if (text.contains(QRegularExpression("(fatal|fail|error|stop)")) {
                    toPrint = QString("\\e[1m\\e[91m%1\\e[0m").arg(text);
            

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            JonBJ 1 Reply Last reply
            1
            • jsulmJ jsulm

              @Cougar-0 said in Questions Concerning colorizing text in Ubuntu terminal.:

              I have had no success in getting it to work

              Can you show the code?
              I think you need to escape the \
              Like:

              if (text.contains(QRegularExpression("(fatal|fail|error|stop)")) {
                      toPrint = QString("\\e[1m\\e[91m%1\\e[0m").arg(text);
              
              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by JonB
              #15

              @jsulm said in Questions Concerning colorizing text in Ubuntu terminal.:

              I think you need to escape the \

              toPrint = QString("\\e[1m\\e[91m%1\\e[0m").arg(text);

              I don't think so :) It takes a brave man to challenge @SGaist, especially if he has typed in code inside backticks. But here he is right. You do not want "\\e" here, to deliver a literal \e. What you want is the C++ literal for "escape character" (ANSI sequences are all escape-[-....)

              \e = \x1B = escape (non-standard GCC extension)

              Seems like it's a GCC non-standard though, because I had never seen it before; \x1B (or \033) is the portable version....

              1 Reply Last reply
              1
              • Cougar 0C Offline
                Cougar 0C Offline
                Cougar 0
                wrote on last edited by Cougar 0
                #16

                @jsulm said in Questions Concerning colorizing text in Ubuntu terminal.:

                Can you show the code?

                Here is a link to download masterserver Qt5 and/or view all the cpp and h files.
                http://git.333networks.com/MasterServer-Qt5/commit/

                Cougar

                1 Reply Last reply
                0
                • SGaistS SGaist

                  @Cougar-0 said in Questions Concerning colorizing text in Ubuntu terminal.:

                  Amin, if this is against forum rules please delete!

                  It's a banner shown to everybody, you did nothing wrong.

                  From the top of my head something as below:.

                  WARNING THIS IS WRONG AND LEFT FOR EDUCATIONAL PURPOSE
                  #include <QRegularExpression>
                  
                  void printColorized(const QString& text)
                  {
                      QString toPrint;
                      if (text.contains(QRegularExpression("(fatal|fail|error|stop)")) {
                          toPrint = QString("\e[1m\e[91m%1\e[0m").arg(text);
                  }
                      if (text.contains(QRegularExpression("(refused|nodevice|timeout)"))) {
                          toPrint = QString("\e[91m%1\e[0m").arg(text);
                  }
                  qDebug() << toPrint;
                  }
                  

                  Here is the correct way to trigger the colorization of the terminal manually:

                  #include <QRegularExpression>
                  #include <QCoreApplication>
                  #include <QString>
                  #include <QtDebug>
                  
                  void printColorized(const QString& text)
                  {
                      if (text.contains(QRegularExpression("(fatal|fail|error|stop)"))) {
                      qDebug() << "\e[1m\e[91m" << text << "\e[0m";
                  }
                      if (text.contains(QRegularExpression("(refused|nodevice|timeout)"))) {
                          qDebug() << "\e[91m" << text << "\e[0m";
                  }
                  }
                  

                  [add fixed version as the original will just print the QString content SGaist]

                  Cougar 0C Offline
                  Cougar 0C Offline
                  Cougar 0
                  wrote on last edited by
                  #17

                  @SGaist said in Questions Concerning colorizing text in Ubuntu terminal.:

                  It's a banner shown to everybody, you did nothing wrong.

                  Is there a way to mark as read so no more banner?
                  I checked and did not find a way to mark as read.

                  Cougar

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

                    @Cougar-0 said in Questions Concerning colorizing text in Ubuntu terminal.:

                    Is there a way to mark as read so no more banner?

                    No, it's a site wide banner.

                    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
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by SGaist
                      #19

                      Here is a fixed version of my original idea:

                      #include <QRegularExpression>
                      #include <QCoreApplication>
                      #include <QString>
                      #include <QtDebug>
                      
                      void printColorized(const QString& text)
                      {
                          if (text.contains(QRegularExpression("(fatal|fail|error|stop)"))) {
                              qDebug() << "\e[1m\e[91m" << text << "\e[0m";
                          } else if (text.contains(QRegularExpression("(refused|nodevice|timeout)"))) {
                              qDebug() << "\e[91m" << text << "\e[0m";
                          }
                      }
                      
                      int main(int argc, char **argv)
                      {
                          QCoreApplication app(argc, argv);
                          printColorized("fatal");
                          printColorized("there is nodevice");
                          return 0;
                      }
                      

                      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
                      1
                      • Cougar 0C Offline
                        Cougar 0C Offline
                        Cougar 0
                        wrote on last edited by
                        #20

                        Thank you, I will give that a try.

                        Cougar

                        1 Reply Last reply
                        0
                        • Cougar 0C Offline
                          Cougar 0C Offline
                          Cougar 0
                          wrote on last edited by Cougar 0
                          #21

                          I created a file named colortext.cpp .
                          I placed the file in the logger folder.
                          I even added the line to the file in the .pro file , if I'm not mistaken that file is created when project is compiled.
                          Nothing.
                          I tried implementing the code into other files, results were the same nothing.
                          My next question is, did I need to recompile all of this code in Qt Creator?
                          The links above will take you to all the source code.
                          I did create my first project with Qt Creator according to this link.
                          https://vitux.com/compiling-your-first-qt-program-in-ubuntu/
                          Worked on the first try.
                          Now can anyone show me how to add color and resizing code for the text?

                          #include <QApplication>
                          #include <QLabel>
                          #include <QWidget>
                          
                          int main(int argc, char *argv[ ])
                          {
                          
                          QApplication app(argc, argv);
                          QLabel hello("<center>Welcome to my first Qt program</center>");
                          hello.setWindowTitle("My First Qt Program");
                          hello.resize(400, 400);
                          hello.show();
                          return app.exec();
                          
                          }
                          

                          Should I not be able to just add the code to the file that would enlarge the text and color each word a different color?

                          See pic.
                          https://hosting.photobucket.com/images/dd47/cougarxr7SC/Screenshot_from_2021-09-14_22-39-23.jpg?width=450&height=278&crop=fill

                          Cougar

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

                            Did you run my example as is successfully ?

                            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
                            • Cougar 0C Offline
                              Cougar 0C Offline
                              Cougar 0
                              wrote on last edited by Cougar 0
                              #23

                              Using your code I did the following,
                              I created a file named colortext.cpp . Copied and pasted your code into it.
                              I placed the file in the logger folder.
                              I even added the line to the file in the .pro file , if I'm not mistaken that file is created when project is compiled.
                              Nothing. No color text.
                              I tried implementing the code into other files in the logger folder, results were the same nothing.
                              My next question is, did I need to recompile all of this code in Qt Creator?
                              That is why I did his simple project. Now to get the text in color, and possible change the size of the text.
                              Just to see it I can get that to work.
                              I do believe it is on my end, not sure what I am dong wrong, but figuring things out is half the fun of doing this.

                              Cougar

                              1 Reply Last reply
                              0
                              • Cougar 0C Offline
                                Cougar 0C Offline
                                Cougar 0
                                wrote on last edited by Cougar 0
                                #24

                                I tried the following to see what would happen.

                                #include <QApplication>
                                #include <QLabel>
                                #include <QWidget>
                                #include <QRegularExpression>
                                #include <QCoreApplication>
                                #include <QString>
                                #include <QtDebug>
                                
                                int main(int argc, char *argv[ ])
                                {
                                
                                QApplication app(argc, argv);
                                QLabel hello("<center>Welcome to my first Qt program</center>");
                                hello.setWindowTitle("My First Qt Program");
                                hello.resize(400, 400);
                                hello.show();
                                
                                void printColorized(const QString& text)
                                
                                    if (text.contains(QRegularExpression("Welcome to my first Qt program"))) {
                                        qDebug() << "\e[1m\e[91m" << text << "\e[0m";
                                    }
                                    return app.exec();
                                }    
                                

                                Program ran with no error or change in color.

                                Cougar

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

                                  One issue it that you are not calling printColorized in that test application.

                                  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
                                  • Cougar 0C Offline
                                    Cougar 0C Offline
                                    Cougar 0
                                    wrote on last edited by Cougar 0
                                    #26

                                    @SGaist said in Questions Concerning colorizing text in Ubuntu terminal.:

                                    One issue it that you are not calling printColorized in that test application.

                                    May I ask where in your code does it call the "printColorized"?
                                    I looked and did not see it, plus I searched the web for "calling printColorizd in Qt" , and no results.
                                    I di find this about QColor Class.
                                    https://doc.qt.io/qt-5/qcolor.html
                                    If you code does not call it could that the reason I could not get colored text in my friends program?
                                    SGaist, if it is not too much trouble, could you do this,
                                    https://vitux.com/compiling-your-first-qt-program-in-ubuntu/
                                    and add color text it?
                                    Then I could see the code what it takes to colorize the text.
                                    Thank you for all your help.

                                    Cougar

                                    1 Reply Last reply
                                    0
                                    • Cougar 0C Offline
                                      Cougar 0C Offline
                                      Cougar 0
                                      wrote on last edited by Cougar 0
                                      #27

                                      I tried,

                                      #include <QApplication>
                                      #include <QLabel>
                                      #include <QWidget>
                                      #include <QRegularExpression>
                                      #include <QCoreApplication>
                                      #include <QString>
                                      #include <QtDebug>
                                      
                                      int main(int argc, char *argv[ ])
                                      {
                                      
                                      QApplication app(argc, argv);
                                      QLabel hello("<center>Welcome to my first Qt program</center>");
                                      hello.setWindowTitle("My First Qt Program");
                                      hello.resize(400, 400);
                                      hello.show();
                                      return app.exec();
                                      
                                      }
                                      void printColorized(const QString& text)
                                      {
                                          if (text.contains(QRegularExpression("My First Qt Program"))) {
                                              qDebug() << "\e[1m\e[91m" << text << "\e[0m";
                                          } 
                                          if (text.contains(QRegularExpression("Welcome to my first Qt program"))) {
                                              qDebug() << "\e[91m" << text << "\e[0m";
                                          }
                                      }
                                      
                                      int main(int argc, char **argv)
                                      {
                                          QCoreApplication app(argc, argv);
                                          printColorized("hello");
                                          printColorized("there is no text");
                                          return 0;
                                      }
                                      

                                      If calling printColorized in the above code is not being called then that could be why I am not able to get it to work?
                                      SGaist, I did change your original code to match what was needed here.

                                      Cougar

                                      1 Reply Last reply
                                      0
                                      • Christian EhrlicherC Offline
                                        Christian EhrlicherC Offline
                                        Christian Ehrlicher
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #28

                                        two main functions?

                                        Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                                        Visit the Qt Academy at https://academy.qt.io/catalog

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

                                          Beside the issue of having two main function, your printColorized version won't show anything on the console unless text contains something similar to the regular expressions you wrote there which neither "hello" nor "there is no text" do.

                                          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

                                          • Login

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