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. QTableWidget Operations over columns
Forum Updated to NodeBB v4.3 + New Features

QTableWidget Operations over columns

Scheduled Pinned Locked Moved General and Desktop
28 Posts 6 Posters 8.9k 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.
  • mrjjM mrjj

    Hi
    You should check all pointer to QTableWidgetItem * before using them.
    It might return NULL and u crash.

    Still if you place a break point and single step you should find the line that makes you crash.

    AbderaoufA Offline
    AbderaoufA Offline
    Abderaouf
    wrote on last edited by
    #19

    @mrjj I think it is that line, where I convert a QtableWidgetItem to QString:

    str1 = stagepulse_item->data(Qt::DisplayRole).toString();

    The syntax is right, I dont know what is the real reason though.

    mrjjM VRoninV 2 Replies Last reply
    0
    • AbderaoufA Abderaouf

      @mrjj I think it is that line, where I convert a QtableWidgetItem to QString:

      str1 = stagepulse_item->data(Qt::DisplayRole).toString();

      The syntax is right, I dont know what is the real reason though.

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

      @Abderaouf
      It seems correct. You are getting a QVariant from data and call toString.
      So when debugging it crash on this line?

      AbderaoufA 1 Reply Last reply
      0
      • AbderaoufA Abderaouf

        @mrjj I think it is that line, where I convert a QtableWidgetItem to QString:

        str1 = stagepulse_item->data(Qt::DisplayRole).toString();

        The syntax is right, I dont know what is the real reason though.

        VRoninV Offline
        VRoninV Offline
        VRonin
        wrote on last edited by VRonin
        #21

        @Abderaouf said in QTableWidget Operations over columns:

        I dont know what is the real reason though

        probably stagepulse_item is a null pointer

        also your logic does not work, at the moment the calculation is based on whether the last line, second column in m_ptable_ConvDesign is Y or N

        "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

        AbderaoufA 1 Reply Last reply
        1
        • mrjjM mrjj

          @Abderaouf
          It seems correct. You are getting a QVariant from data and call toString.
          So when debugging it crash on this line?

          AbderaoufA Offline
          AbderaoufA Offline
          Abderaouf
          wrote on last edited by
          #22

          @mrjj When I run it, it works until I click on the button and then It crashes even though all the data are input. when I take out this line, the button doesn't work when I click at it.

          mrjjM 1 Reply Last reply
          0
          • AbderaoufA Abderaouf

            @mrjj When I run it, it works until I click on the button and then It crashes even though all the data are input. when I take out this line, the button doesn't work when I click at it.

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

            @Abderaouf
            as @VRonin asks,
            could stagepulse_item be NULL ?

            1 Reply Last reply
            1
            • VRoninV VRonin

              @Abderaouf said in QTableWidget Operations over columns:

              I dont know what is the real reason though

              probably stagepulse_item is a null pointer

              also your logic does not work, at the moment the calculation is based on whether the last line, second column in m_ptable_ConvDesign is Y or N

              AbderaoufA Offline
              AbderaoufA Offline
              Abderaouf
              wrote on last edited by Abderaouf
              #24

              @VRonin how can I check if stagepulse_item is a null pointer??
              I want to check the value of each line not only the last. I should probably add another for loop for the columns, right??

              mrjjM 1 Reply Last reply
              0
              • AbderaoufA Abderaouf

                @VRonin how can I check if stagepulse_item is a null pointer??
                I want to check the value of each line not only the last. I should probably add another for loop for the columns, right??

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

                @Abderaouf

                if ( ! stagepulse_item) {
                qDebug () << "NULL !!!";
                return;
                }

                str1 = stagepulse_item->data(Qt::DisplayRole).toString();
                ...

                • I want to check the value of each line not only the last. I should probably add another for loop for the columns, right??

                yes something like that. currently u loop m_ptable_ConvDesign first and set str1 but that should be checked
                while u loop over the rows. So for a row if COL have Y/N then do it accordingly.

                AbderaoufA 1 Reply Last reply
                2
                • mrjjM mrjj

                  @Abderaouf

                  if ( ! stagepulse_item) {
                  qDebug () << "NULL !!!";
                  return;
                  }

                  str1 = stagepulse_item->data(Qt::DisplayRole).toString();
                  ...

                  • I want to check the value of each line not only the last. I should probably add another for loop for the columns, right??

                  yes something like that. currently u loop m_ptable_ConvDesign first and set str1 but that should be checked
                  while u loop over the rows. So for a row if COL have Y/N then do it accordingly.

                  AbderaoufA Offline
                  AbderaoufA Offline
                  Abderaouf
                  wrote on last edited by
                  #26

                  @mrjj

                  I used the below and it worked fine:

                  QTableWidgetItem *stagepulse_item = ui->m_ptable_ConvDesign->item(row, 1);
                  if(stagepulse_item!=NULL)
                  {
                  str1 = stagepulse_item->data(Qt::DisplayRole).toString();
                  }

                  Cheers;

                  1 Reply Last reply
                  1
                  • AbderaoufA Offline
                    AbderaoufA Offline
                    Abderaouf
                    wrote on last edited by
                    #27

                    Gents;

                    One more challenge. I am trying to create a menu in my QTabWidget using the below basic code:

                    void CFAdvisor::CreateMenu()

                    {
                    fileMenu = MenuBar().addMenu(tr("&File"));
                    fileMenu->addAction(actionExit);
                    fileMenu-> addAction(actionPrint);
                    helpMenu = MenuBar() ->addMenu(tr("&Help"));
                    helpMenu-> addAction(actionContent);
                    helpMenu-> addAction(actionAbout);

                    }

                    I have a the error message though, it says the following:

                    C:\computing\Qt Designer\cfadvisor.cpp:488: error: 'menuBar' was not declared in this scope
                    fileMenu = menuBar()->addMenu(tr("&File"));
                    ^

                    Any advise on how to correct this error. this is the Qt version I have.

                    0_1483725857061_upload-e59f0784-f714-4f46-8b9d-31dd599923a6

                    Cheers

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

                      Hi
                      Where is MenuBar() ?
                      if CFAdvisor is not a main window type then you need to create the MenuBar yourself if not already
                      added in Designer.

                      http://www.codeprogress.com/cpp/libraries/qt/QMenuBarAddMenu.php

                      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