Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. read state of checkbox within qTable
Qt 6.12 LTS is out! See what's new in the release blog

read state of checkbox within qTable

Scheduled Pinned Locked Moved Unsolved General and Desktop
12 Posts 4 Posters 4.8k Views 1 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.
  • JonBJ JonB

    @Leopold said in read state of checkbox within qTable:

    ->QWidget(CheckBox)->

    What does that do? If cellWidget returns the widget, you want something like a dynamic_cast to QCheckBox to access your checkbox, don't you?

    L Offline
    L Offline
    Leopold
    wrote on last edited by
    #3

    @JonB
    I want sth like this: m_ui->table_list->QCheckBox->isChecked(true)) but this didn't work too so I tried the other way.
    I#m out of mind.Can you help?

    JonBJ 1 Reply Last reply
    0
    • L Leopold

      @JonB
      I want sth like this: m_ui->table_list->QCheckBox->isChecked(true)) but this didn't work too so I tried the other way.
      I#m out of mind.Can you help?

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

      @Leopold
      I am not a C++ programmer, so I don't know the exact syntax. But you need (I would have thought) to do something like:

      QCheckBox *cb = dynamic_cast <QCheckBox *> (m_ui->table_list->cellWidget(Reihe,Spalte));
      if (cb)
          isChecked = cb->isChecked();
      
      1 Reply Last reply
      2
      • mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by mrjj
        #5

        Hi
        Use qobject_cast instead :)
        Else pretty good hit for non c++ programmer ! ;)

        JonBJ 1 Reply Last reply
        1
        • mrjjM mrjj

          Hi
          Use qobject_cast instead :)
          Else pretty good hit for non c++ programmer ! ;)

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

          @mrjj
          Nowt wrong with dynamic_cast, just a touch slower (and uses RTTI, but so what), and I don't think speed here is going to matter ... ;-)

          mrjjM 1 Reply Last reply
          1
          • JonBJ JonB

            @mrjj
            Nowt wrong with dynamic_cast, just a touch slower (and uses RTTI, but so what), and I don't think speed here is going to matter ... ;-)

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

            @JonB
            well qobject_cast uses Qt meta type system and seems a better fit but
            not sure if any situations where dynamic_cast would do incorrectly vs qobject_cast.
            So nope, wont matter much i guess.

            JonBJ 1 Reply Last reply
            1
            • mrjjM mrjj

              @JonB
              well qobject_cast uses Qt meta type system and seems a better fit but
              not sure if any situations where dynamic_cast would do incorrectly vs qobject_cast.
              So nope, wont matter much i guess.

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

              @mrjj
              Yeah, I was just being flippant, didn't mean to disagree. qobject_cast might be a better "fit", I had assumed OP was familiar with dynamic_cast for other purposes, is all :)

              mrjjM 1 Reply Last reply
              1
              • JonBJ JonB

                @mrjj
                Yeah, I was just being flippant, didn't mean to disagree. qobject_cast might be a better "fit", I had assumed OP was familiar with dynamic_cast for other purposes, is all :)

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

                ah, ok. well actually a good assumption. :)

                L 1 Reply Last reply
                0
                • mrjjM mrjj

                  ah, ok. well actually a good assumption. :)

                  L Offline
                  L Offline
                  Leopold
                  wrote on last edited by
                  #10

                  @all,
                  sorry i can notcome up with that code.With this code , the connect should transport three items int row,intcolumn and bool ischecked.
                  Meanwhile I have found "QChecktableItem" but when I want to include qtable.h, this is not found and QCheckTableItem is also not found. Not either in the help files.Some examples are out of 2003 within QT 3 .I have Qt 5.6, is this QCheckboxItem no longer available.
                  Who has example which works?

                  1 Reply Last reply
                  0
                  • VRoninV Offline
                    VRoninV Offline
                    VRonin
                    wrote on last edited by
                    #11

                    There is absolutely no reason to use setCellWidget to set a checkbox as QAbstarctItemModel has that function already implemented:

                    m_ui->table_list->setRowCount(7);
                    m_ui->table_list->setColumnCount(6);
                    m_ui->table_list->setShowGrid(true);
                    m_ui->table_list->setStyleSheet("QTableView {selection-background-color: red;}");
                    m_ui->table_list->setSelectionMode(QAbstractItemView::SingleSelection);
                    QTableWidgetItem* tempItem = new QTableWidgetItem;
                    tempItem->setFlags(tempItem->flags() | Qt::ItemIsUserCheckable);
                    tempItem->setData(Qt::DisplayRole, QStringLiteral("1 rpm"));
                    tempItem->setData(Qt::CheckStateRole, Qt::Unchecked);
                    m_ui->table_list->setItem(0,0,tempItem);
                    tempItem = new QTableWidgetItem;
                    tempItem->setFlags(tempItem->flags() | Qt::ItemIsUserCheckable);
                    tempItem->setData(Qt::DisplayRole, QStringLiteral("54  rpm<1500"));
                    tempItem->setData(Qt::CheckStateRole, Qt::Unchecked);
                    m_ui->table_list->setItem(1,0,tempItem);
                    tempItem = new QTableWidgetItem;
                    tempItem->setFlags(tempItem->flags() | Qt::ItemIsUserCheckable);
                    tempItem->setData(Qt::DisplayRole, QStringLiteral("2  watertemp"));
                    tempItem->setData(Qt::CheckStateRole, Qt::Unchecked);
                    m_ui->table_list->setItem(2,0,tempItem);
                    
                    void MainWindow::cellSelectedSlot(int nRow,int nCol)
                    {
                    
                        int m=0;
                    int Reihe=nRow ;
                    int Spalte=nCol;
                     qDebug()<<Reihe <<Spalte;
                      if ((Reihe== 0)&&(Spalte==0))
                            {if (m_ui->table_list->model()->index(Reihe,Spalte).data(Qt::CheckStateRole)==Qt::Checked)
                    

                    "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

                    1 Reply Last reply
                    3
                    • L Offline
                      L Offline
                      Leopold
                      wrote on last edited by
                      #12

                      Hello,
                      works perfect .
                      I couldn't have done it myself.
                      Thank you.

                      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
                      • Unsolved