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 move cursor to a at a specific line number
Forum Updated to NodeBB v4.3 + New Features

How to move cursor to a at a specific line number

Scheduled Pinned Locked Moved Solved General and Desktop
14 Posts 4 Posters 2.0k Views 3 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.
  • U Offline
    U Offline
    UG SEP
    wrote on last edited by
    #1

    Hey, I am trying to move the cursor to a specific line number but It moves it to the index no.
    Here is the piece of code :

     cursor.movePosition(QTextCursor::StartOfLine,QTextCursor::MoveAnchor,line);
    

    Please tell me that what wrong I am doing??
    Thanks in advance

    JonBJ 1 Reply Last reply
    0
    • U Offline
      U Offline
      UG SEP
      wrote on last edited by
      #2

      @SGaist please help me

      1 Reply Last reply
      0
      • U UG SEP

        Hey, I am trying to move the cursor to a specific line number but It moves it to the index no.
        Here is the piece of code :

         cursor.movePosition(QTextCursor::StartOfLine,QTextCursor::MoveAnchor,line);
        

        Please tell me that what wrong I am doing??
        Thanks in advance

        JonBJ Offline
        JonBJ Offline
        JonB
        wrote on last edited by JonB
        #3

        @UG-SEP
        What is "index no"?

        Anyway, I believe you'll want to use QTextBlock QTextDocument::findBlockByLineNumber(int lineNumber) const. See e.g. https://stackoverflow.com/questions/27036048/how-to-scroll-to-the-specified-line-in-qplaintextedit.

        U 1 Reply Last reply
        0
        • JonBJ JonB

          @UG-SEP
          What is "index no"?

          Anyway, I believe you'll want to use QTextBlock QTextDocument::findBlockByLineNumber(int lineNumber) const. See e.g. https://stackoverflow.com/questions/27036048/how-to-scroll-to-the-specified-line-in-qplaintextedit.

          U Offline
          U Offline
          UG SEP
          wrote on last edited by
          #4

          @JonB I tried it but when I 1 the condition is that when I add an Image at index=0 and then write some text at the index: 1 and then when I add Image at index:2 it added before the first image at index:0
          Hope you understand for more clarification here is the image:
          1.jpg

          1 Reply Last reply
          0
          • U Offline
            U Offline
            UG SEP
            wrote on last edited by
            #5

            help me @JonB

            1 Reply Last reply
            0
            • U Offline
              U Offline
              UG SEP
              wrote on last edited by
              #6

              @JonB please help me

              JonBJ 1 Reply Last reply
              0
              • U UG SEP

                @JonB please help me

                JonBJ Offline
                JonBJ Offline
                JonB
                wrote on last edited by
                #7

                @UG-SEP
                Show some minimal code of what you tried and what does not work. I don't think we even know what kind of widget you are using. I don't even understand what your screenshot is all about, no idea how it relates to the question.

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

                  Hi

                  Is this a Text Edit ???
                  alt text

                  Yes please do as @JonB says and explain a bit more about those
                  "index" you talk about. I'm not sure what it means as TextEdit don't use index as such.

                  1 Reply Last reply
                  0
                  • artwawA Offline
                    artwawA Offline
                    artwaw
                    wrote on last edited by
                    #9

                    I fail to understand what you intend to do but from what you already wrote you got the whole idea wrong.

                    QTextCursor has no way of knowing "which line", the whole concept of "lines of text" Is entirely not present in the text processing provided by Qt. The reason is that the context of QTextDocument is being laid out using QAbstractTextDocumentLayout, which you can of course subclass, but main point is - this is done and should be done automatically depending on the size of the view etc.

                    If you read QTextCursor and QTextDocument documentation (did you? really?) you will realise at least two things:

                    1. From the contextual point of view character content is just one big string.
                    2. The smallest portion of the text you can jump between is called the block, which is in turn defined as more or less the paragraph. Details on how to deal with that can be in part found here: https://doc.qt.io/qt-5/qtextblock.html (yes, there is a class for that!).

                    You can also iterate over the words but that's quite obvious.

                    So in order to achieve minimal flexibility you seem to need I'd rather start with constructing properly formed QTextDocument, ideally by adding content on block-by-block basis so we can be sure of the structure. Importing text as whole does not guarantee block division to be set correctly.

                    Of course all the above remains just a pure theory knowledge that can be easily obtain by simply reading three pages of documentation. Four, if you count in the general overview of rich text processing in Qt.

                    Now please show us the relevant parts of your code so we can assist.

                    For more information please re-read.

                    Kind Regards,
                    Artur

                    1 Reply Last reply
                    0
                    • U Offline
                      U Offline
                      UG SEP
                      wrote on last edited by
                      #10

                      Ok, @JonB, @mrjj, and @artwaw. Let me explain
                      Yes, it is a TextEdit Widget...
                      And here is the piece of code

                         QUrl Uri(QString("file://%1").arg(file));
                          QImage image = QImageReader(file).read();
                          QTextDocument * textDocument = ui -> textEdit -> document();
                          textDocument -> addResource(QTextDocument::ImageResource, Uri, QVariant(image));
                          QTextCursor cursor(ui ->textEdit->document()->findBlockByLineNumber(line-1));
                          ui->textEdit->setTextCursor(cursor);
                          QTextImageFormat imageFormat;
                          imageFormat.setWidth(image.width());
                          imageFormat.setHeight(image.height());
                          imageFormat.setName(Uri.toString());
                          cursor.insertImage(imageFormat);
                      

                      i.e. Like I add an Image at line number 1 and after that I add a text at line no 2 and at last I add one more Image at the 3 line but that Image didn't appear on the 3rd line it's appear on the 1 line at the 1st and 2nd Line content shift down by One line.
                      That the problem It not add at line number 3rd else everything works fine

                      JonBJ 1 Reply Last reply
                      0
                      • U UG SEP

                        Ok, @JonB, @mrjj, and @artwaw. Let me explain
                        Yes, it is a TextEdit Widget...
                        And here is the piece of code

                           QUrl Uri(QString("file://%1").arg(file));
                            QImage image = QImageReader(file).read();
                            QTextDocument * textDocument = ui -> textEdit -> document();
                            textDocument -> addResource(QTextDocument::ImageResource, Uri, QVariant(image));
                            QTextCursor cursor(ui ->textEdit->document()->findBlockByLineNumber(line-1));
                            ui->textEdit->setTextCursor(cursor);
                            QTextImageFormat imageFormat;
                            imageFormat.setWidth(image.width());
                            imageFormat.setHeight(image.height());
                            imageFormat.setName(Uri.toString());
                            cursor.insertImage(imageFormat);
                        

                        i.e. Like I add an Image at line number 1 and after that I add a text at line no 2 and at last I add one more Image at the 3 line but that Image didn't appear on the 3rd line it's appear on the 1 line at the 1st and 2nd Line content shift down by One line.
                        That the problem It not add at line number 3rd else everything works fine

                        JonBJ Offline
                        JonBJ Offline
                        JonB
                        wrote on last edited by JonB
                        #11

                        @UG-SEP
                        You have been asked what your screenshot shows. It does not look like a QTextEdit, and it does not look like it should be a QTextEdit. It looks like a QTreeView, with folding & icons & columns.

                        U 1 Reply Last reply
                        1
                        • JonBJ JonB

                          @UG-SEP
                          You have been asked what your screenshot shows. It does not look like a QTextEdit, and it does not look like it should be a QTextEdit. It looks like a QTreeView, with folding & icons & columns.

                          U Offline
                          U Offline
                          UG SEP
                          wrote on last edited by
                          #12

                          @JonB It is QTextEdit and the screenshot show the output of the program
                          as I have written what I want in the previous post

                          JonBJ 1 Reply Last reply
                          0
                          • U UG SEP

                            @JonB It is QTextEdit and the screenshot show the output of the program
                            as I have written what I want in the previous post

                            JonBJ Offline
                            JonBJ Offline
                            JonB
                            wrote on last edited by
                            #13

                            @UG-SEP
                            Well I would never have known that, and you're saying the screenshot you show has nothing relevant to do with your question. Shame you didn't show the QTextEdit and how it went wrong, to help responders,

                            U 1 Reply Last reply
                            0
                            • JonBJ JonB

                              @UG-SEP
                              Well I would never have known that, and you're saying the screenshot you show has nothing relevant to do with your question. Shame you didn't show the QTextEdit and how it went wrong, to help responders,

                              U Offline
                              U Offline
                              UG SEP
                              wrote on last edited by
                              #14

                              @JonB So what should I do

                              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