Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Call for Presentations - Qt World Summit

    Solved qtextbrowser text view problem

    General and Desktop
    4
    17
    2240
    Loading More Posts
    • 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.
    • S
      saber last edited by saber

      i output a text from qprosess and plase it qtextbrowser .

      but problem is , how text is shown in textbrowser .also text warp is not working.

      0_1525175264437_uy.png

      is it possible to set text as terminal text ? i am talking about spaces between text ?

      1 Reply Last reply Reply Quote 0
      • V
        VRonin last edited by

        before writing anything in it, you can use

        textBrowser->setLineWrapMode(QTextEdit::NoWrap);
        textBrowser->setCurrentFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
        

        "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
        ~Napoleon Bonaparte

        On a crusade to banish setIndexWidget() from the holy land of Qt

        S 1 Reply Last reply Reply Quote 5
        • S
          saber @VRonin last edited by

          @VRonin
          0_1525252457628_a1.png

          spacing is not fixed

          1 Reply Last reply Reply Quote 0
          • V
            VRonin last edited by VRonin

            Text browser is just ignoring textBrowser->setCurrentFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));

            Let's try this:

            QTextCursor textBrowCrsr(ui->tdetail->document());
            const int oldPos = textBrowCrsr.position();
            textBrowCrsr.movePosition(QTextCursor::End);
            QTextCharFormat textBrowFormat = textBrowCrsr.charFormat();
            textBrowFormat.setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
            textBrowCrsr.insertText(output,textBrowFormat);
            textBrowCrsr.setPosition(oldPos);
            

            P.S.
            That's not a great way of reading from QProcess to QString. It probably blows up as soon as you have any non-ASCII char. Use QTextStream instead

            "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
            ~Napoleon Bonaparte

            On a crusade to banish setIndexWidget() from the holy land of Qt

            S 1 Reply Last reply Reply Quote 3
            • S
              saber @VRonin last edited by

              @VRonin said in qtextbrowser text view problem:

              QTextStream

              i tried it ,but no changes.

              please see the cpp file github
              i need the fix for my next release .
              so please give me a fix.

              0_1525426582991_f.png

              please show me how to use the QTextStream in that function .

              1 Reply Last reply Reply Quote 0
              • V
                VRonin last edited by

                The problem in your screenshot is that the last row (setText) overrides everything done above. just remove that row.

                how to use the QTextStream

                replace QString output(pl.readAllStandardOutput()); with

                QTextStream consoleStream(&pl);
                const QString output  = consoleStream.readAll();
                

                "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                ~Napoleon Bonaparte

                On a crusade to banish setIndexWidget() from the holy land of Qt

                S 2 Replies Last reply Reply Quote 2
                • S
                  saber @VRonin last edited by

                  @VRonin nothing
                  0_1525496871078_i.png

                  1 Reply Last reply Reply Quote 0
                  • S
                    saber @VRonin last edited by

                    @VRonin any other solution??

                    1 Reply Last reply Reply Quote 0
                    • SGaist
                      SGaist Lifetime Qt Champion last edited by

                      Hi,

                      You should add some checks to verify that the process did indeed run and it was successful.

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

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        saber @SGaist last edited by

                        @SGaist
                        it run successfully and output is on the side window.

                        1 Reply Last reply Reply Quote 0
                        • SGaist
                          SGaist Lifetime Qt Champion last edited by

                          The fact that mediainfo runs successfully on the command line doesn't mean that it will necessarily run the way you expect it to with QProcess.

                          Are you sure the path to the media file you are using is correct ?
                          Is it a relative or are an absolute path ?
                          What if you use the recommended structure of calling QProcess::start with the command as first parameter and a QStringList with the options as second parameter ?
                          Did you actually checked that p1 starts successfully ?
                          Did you actually checked that p1 ends 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 Reply Quote 1
                          • mrjj
                            mrjj Lifetime Qt Champion last edited by

                            Hi
                            As for other solution.
                            Use a QplainTextEdit
                            alt text

                            and just sets its font to monospaced
                            ui->plainTextEdit->setFont( (QFontDatabase::systemFont(QFontDatabase::FixedFont)) );

                            1 Reply Last reply Reply Quote 2
                            • V
                              VRonin last edited by

                              The only thing I can think of with QTextBrowser is that you are using a style sheet with a font that overrides the one we are setting

                              "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                              ~Napoleon Bonaparte

                              On a crusade to banish setIndexWidget() from the holy land of Qt

                              mrjj 1 Reply Last reply Reply Quote 2
                              • mrjj
                                mrjj Lifetime Qt Champion @VRonin last edited by mrjj

                                @VRonin
                                Yep something like that - as your code and test file just works
                                with output from same command on linux.

                                Also, i noticed one thing in code shown on GITHUB

                                QTextCursor textBrowCrsr(ui->tdetail->document());
                                    const int oldPos = textBrowCrsr.position();
                                    textBrowCrsr.movePosition(QTextCursor::End);
                                    QTextCharFormat textBrowFormat = textBrowCrsr.charFormat();
                                    textBrowFormat.setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
                                    textBrowCrsr.insertText(output,textBrowFormat);
                                    textBrowCrsr.setPosition(oldPos);
                                
                                
                                    ui->tdetail->setText(output.toUtf8()); <<<<<<<<<<<<<<<<<< wont that override insertText ?
                                
                                S 1 Reply Last reply Reply Quote 2
                                • S
                                  saber @mrjj last edited by

                                  @mrjj it was a old commit .

                                  mrjj 1 Reply Last reply Reply Quote 0
                                  • mrjj
                                    mrjj Lifetime Qt Champion @saber last edited by

                                    @saber
                                    ok.
                                    I did make small test on linux and VRonin sample did in fact make
                                    it uses fixed font so it looked correctly.
                                    However, using plainTextEdit is a one liner so might be more optimal if you do not need the HTML textbrowse offer

                                    1 Reply Last reply Reply Quote 1
                                    • S
                                      saber last edited by

                                      i do't know how to fix that or what's wrong.
                                      after long works i made an app with mediainfo as backend.
                                      here is the app CoreInfo.
                                      thanks.

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post