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. ui->addTab "index out of range" !?
Qt 6.11 is out! See what's new in the release blog

ui->addTab "index out of range" !?

Scheduled Pinned Locked Moved Solved General and Desktop
45 Posts 6 Posters 13.6k Views 2 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.
  • NiagarerN Offline
    NiagarerN Offline
    Niagarer
    wrote on last edited by
    #20

    To make it easier:
    the line

        ui->Graph->addTab(new QWidget(this), "hello");
    

    does not work. Doesn't matter where I call it.

    mrjjM P 2 Replies Last reply
    0
    • NiagarerN Niagarer

      To make it easier:
      the line

          ui->Graph->addTab(new QWidget(this), "hello");
      

      does not work. Doesn't matter where I call it.

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

      @Niagarer
      a QWidget is not really visible. (it paints nothing)
      Try with other type

      NiagarerN 1 Reply Last reply
      0
      • mrjjM mrjj

        @Niagarer
        a QWidget is not really visible. (it paints nothing)
        Try with other type

        NiagarerN Offline
        NiagarerN Offline
        Niagarer
        wrote on last edited by Niagarer
        #22

        @mrjj
        Ok.
        This also does not work:

            GraphWidget *newGraphWidget = new GraphWidget(this); //GraphWidget is a QGraphicsView
            ui->Graph->addTab(newGraphWidget, "hello");
        
        mrjjM 1 Reply Last reply
        0
        • NiagarerN Niagarer

          @mrjj
          Ok.
          This also does not work:

              GraphWidget *newGraphWidget = new GraphWidget(this); //GraphWidget is a QGraphicsView
              ui->Graph->addTab(newGraphWidget, "hello");
          
          mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by mrjj
          #23

          @Niagarer
          this works here
          ui->tabWidget->addTab( new QPushButton("kkk") ,"tab" );
          alt text

          NiagarerN 1 Reply Last reply
          1
          • mrjjM mrjj

            @Niagarer
            this works here
            ui->tabWidget->addTab( new QPushButton("kkk") ,"tab" );
            alt text

            NiagarerN Offline
            NiagarerN Offline
            Niagarer
            wrote on last edited by Niagarer
            #24

            @mrjj
            It doesn't work in my Program... xD
            What the hell...
            0_1501510030772_Qt 3.png

            1 Reply Last reply
            0
            • NiagarerN Niagarer

              To make it easier:
              the line

                  ui->Graph->addTab(new QWidget(this), "hello");
              

              does not work. Doesn't matter where I call it.

              P Offline
              P Offline
              Paul Busovikov
              wrote on last edited by
              #25

              @Niagarer yes it doesn't

               int index = 0;
                   for (int i = 0; i < 10; ++i )
                   {
                        index = ui->tabWidget->addTab( new QWidget, "title" );
                        qDebug() << index << "  " << ui->tabWidget->currentIndex() ;
                   }
              
              0    0
              1    0
              2    0
              3    0
              4    0
              5    0
              6    0
              7    0
              8    0
              9    0
              
              NiagarerN 1 Reply Last reply
              0
              • mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by
                #26

                Hi
                I assume you are doing other stuff in your app since it crashes.

                Just to be sure, your Qt is not sick.
                Can you try test project
                https://www.dropbox.com/s/tpyxmww5t98i4um/untitled39.zip?dl=0

                NiagarerN 1 Reply Last reply
                1
                • P Paul Busovikov

                  @Niagarer yes it doesn't

                   int index = 0;
                       for (int i = 0; i < 10; ++i )
                       {
                            index = ui->tabWidget->addTab( new QWidget, "title" );
                            qDebug() << index << "  " << ui->tabWidget->currentIndex() ;
                       }
                  
                  0    0
                  1    0
                  2    0
                  3    0
                  4    0
                  5    0
                  6    0
                  7    0
                  8    0
                  9    0
                  
                  NiagarerN Offline
                  NiagarerN Offline
                  Niagarer
                  wrote on last edited by
                  #27

                  @Paul-Busovikov
                  Oh yes, I see, I'm sorry.

                  1 Reply Last reply
                  0
                  • mrjjM mrjj

                    Hi
                    I assume you are doing other stuff in your app since it crashes.

                    Just to be sure, your Qt is not sick.
                    Can you try test project
                    https://www.dropbox.com/s/tpyxmww5t98i4um/untitled39.zip?dl=0

                    NiagarerN Offline
                    NiagarerN Offline
                    Niagarer
                    wrote on last edited by Niagarer
                    #28

                    @mrjj
                    Yep, it works
                    0_1501510743942_Qt 5.png
                    Yes, I duplicated an old project. And now the MainWindow sould create a new tab in the tab widget called Graph with an object of my class GraphWidget (QGraphicsView). Nothing else (in the constructor).

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

                      Ok, all good then (with your Qt) :)
                      It should be no different inserting a QGraphicsView subclass

                      NiagarerN 1 Reply Last reply
                      0
                      • mrjjM mrjj

                        Ok, all good then (with your Qt) :)
                        It should be no different inserting a QGraphicsView subclass

                        NiagarerN Offline
                        NiagarerN Offline
                        Niagarer
                        wrote on last edited by
                        #30

                        @mrjj
                        I'm not sure if I understood that correctly...
                        In the old project GraphWidget is just a normal Widget. Here it is a QGraphicsView. Where is the mattering difference?

                        mrjjM P 2 Replies Last reply
                        0
                        • NiagarerN Niagarer

                          @mrjj
                          I'm not sure if I understood that correctly...
                          In the old project GraphWidget is just a normal Widget. Here it is a QGraphicsView. Where is the mattering difference?

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

                          @Niagarer

                          Its not. 100% the same.
                          class QGraphicsView : public QAbstractScrollArea
                          class QAbstractScrollArea : public QFrame
                          class QFrame : public QWidget

                          NiagarerN 1 Reply Last reply
                          1
                          • mrjjM mrjj

                            @Niagarer

                            Its not. 100% the same.
                            class QGraphicsView : public QAbstractScrollArea
                            class QAbstractScrollArea : public QFrame
                            class QFrame : public QWidget

                            NiagarerN Offline
                            NiagarerN Offline
                            Niagarer
                            wrote on last edited by Niagarer
                            #32

                            @mrjj
                            Ok... So it is because of the QGraphicsView
                            And what could I do to fix that?

                            mrjjM 1 Reply Last reply
                            0
                            • NiagarerN Niagarer

                              @mrjj
                              I'm not sure if I understood that correctly...
                              In the old project GraphWidget is just a normal Widget. Here it is a QGraphicsView. Where is the mattering difference?

                              P Offline
                              P Offline
                              Paul Busovikov
                              wrote on last edited by
                              #33

                              @Niagarer here I see that you add your Widget to vector after you are trying to get one from

                              //ui->allNodes_scrollArea->setWidget( allNodesWidgets[ui->Graph->currentIndex()] );     // !? PROBLEM !?
                                  allNodesWidgets.append(allNodesWidget);
                              
                              1 Reply Last reply
                              0
                              • NiagarerN Niagarer

                                @mrjj
                                Ok... So it is because of the QGraphicsView
                                And what could I do to fix that?

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

                                @Niagarer
                                No, its not due to QGraphicsView.
                                its something else.

                                NiagarerN 1 Reply Last reply
                                1
                                • mrjjM mrjj

                                  @Niagarer
                                  No, its not due to QGraphicsView.
                                  its something else.

                                  NiagarerN Offline
                                  NiagarerN Offline
                                  Niagarer
                                  wrote on last edited by Niagarer
                                  #35

                                  @mrjj
                                  Ok >.<
                                  can you give me suggestions what else I could try?

                                  mrjjM 1 Reply Last reply
                                  0
                                  • NiagarerN Niagarer

                                    @mrjj
                                    Ok >.<
                                    can you give me suggestions what else I could try?

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

                                    @Niagarer

                                    Im not really sure "what is not working".
                                    You seem to crash your list when no tab is active
                                    ui->Graph->currentIndex() returns -1 in this case.

                                    Other than that im not sure what you ask?

                                    NiagarerN 1 Reply Last reply
                                    0
                                    • mrjjM mrjj

                                      @Niagarer

                                      Im not really sure "what is not working".
                                      You seem to crash your list when no tab is active
                                      ui->Graph->currentIndex() returns -1 in this case.

                                      Other than that im not sure what you ask?

                                      NiagarerN Offline
                                      NiagarerN Offline
                                      Niagarer
                                      wrote on last edited by Niagarer
                                      #37

                                      @mrjj
                                      No, yes the list thing was a mistake but the actual problem is still that In this project I event can not do this:

                                          ui->Graph->addTab(new QPushButton("blobb"),"tab");
                                      

                                      And I have no idea why
                                      And exactely this is the line where it crashes
                                      When I do this:

                                          qDebug() << "first";
                                          ui->Graph->addTab(new QPushButton("blobb"),"tab");
                                          qDebug() << "second";
                                      

                                      I get is this:

                                      first
                                      ASSERT failure in QVector<T>::operator[]: "index out of range"
                                      
                                      mrjjM 1 Reply Last reply
                                      0
                                      • NiagarerN Niagarer

                                        @mrjj
                                        No, yes the list thing was a mistake but the actual problem is still that In this project I event can not do this:

                                            ui->Graph->addTab(new QPushButton("blobb"),"tab");
                                        

                                        And I have no idea why
                                        And exactely this is the line where it crashes
                                        When I do this:

                                            qDebug() << "first";
                                            ui->Graph->addTab(new QPushButton("blobb"),"tab");
                                            qDebug() << "second";
                                        

                                        I get is this:

                                        first
                                        ASSERT failure in QVector<T>::operator[]: "index out of range"
                                        
                                        mrjjM Offline
                                        mrjjM Offline
                                        mrjj
                                        Lifetime Qt Champion
                                        wrote on last edited by mrjj
                                        #38

                                        @Niagarer

                                        Is ui->Graph the tabWidget ?
                                        You do call setupUI() in (mainwin) constructor ? to setup ui before use?

                                        Also addTab is the build in func? you did NOT add a new function your self?

                                        NiagarerN 1 Reply Last reply
                                        0
                                        • mrjjM mrjj

                                          @Niagarer

                                          Is ui->Graph the tabWidget ?
                                          You do call setupUI() in (mainwin) constructor ? to setup ui before use?

                                          Also addTab is the build in func? you did NOT add a new function your self?

                                          NiagarerN Offline
                                          NiagarerN Offline
                                          Niagarer
                                          wrote on last edited by Niagarer
                                          #39

                                          @mrjj
                                          Yes, the constructor of MainWindow now looks like this:

                                          MainWindow::MainWindow(QWidget *parent) :
                                              QMainWindow(parent),
                                              ui(new Ui::MainWindow)
                                          {
                                              qDebug() << "Start of MainWindow Constructor";
                                          
                                              ui->setupUi(this);
                                          
                                              tabCounter = 0;
                                          
                                              qDebug() << "first";
                                              ui->Graph->addTab(new QPushButton("blobb"),"tab");
                                              qDebug() << "second";
                                          
                                              qDebug() << "End of MainWindow Constructor";
                                          }
                                          

                                          No I did not build a new addTab()-function
                                          Yes the ui->Graph is the TabGidget

                                          mrjjM 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