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. QTableView: select rows don't work correctly
QtWS25 Last Chance

QTableView: select rows don't work correctly

Scheduled Pinned Locked Moved General and Desktop
2 Posts 2 Posters 855 Views
  • 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.
  • P Offline
    P Offline
    petitg1987
    wrote on last edited by
    #1

    Hello,

    I have a class named ObjectTableView which extends QTableView. The constructor:

    @ ObjectTableView::ObjectTableView(QWidget *parent) :
    QTableView(parent)
    {
    objectsListModel = new QStandardItemModel(0, 2, this);
    objectsListModel->setHorizontalHeaderItem(0, new QStandardItem("Object Name"));
    objectsListModel->setHorizontalHeaderItem(1, new QStandardItem("Mesh File"));
    setModel(objectsListModel);

    horizontalHeader()->setSectionResizeMode(0, QHeaderView::Interactive);
    horizontalHeader()->setSectionResizeMode(1, QHeaderView::Interactive);
    horizontalHeader()->resizeSection(0, 90);
    horizontalHeader()->resizeSection(1, 230);
    verticalHeader()->hide();

    setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection);
    setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows); //don't work ?
    }@

    Here the method which allow me to add an element to the table:
    @ void ObjectTableView::addObject(const SceneObject *sceneObject)
    {
    QStandardItem *itemObjectName = new QStandardItem(QString::fromStdString(sceneObject->getName()));
    itemObjectName->setData(qVariantFromValue(sceneObject), Qt::UserRole + 1);
    itemObjectName->setEditable(false);

    QStandardItem *itemMeshFile = new QStandardItem(QString::fromStdString(sceneObject->getModel()->getMeshes()->getMeshFilename()));
    itemMeshFile->setData(qVariantFromValue(sceneObject), Qt::UserRole + 1);
    itemMeshFile->setEditable(false);

    int nextRow = objectsListModel->rowCount();
    objectsListModel->insertRow(nextRow);
    objectsListModel->setItem(nextRow, 0, itemObjectName);
    objectsListModel->setItem(nextRow, 1, itemMeshFile);

    resizeRowsToContents();
    }@

    Problem: the selection behavior by rows don't work correctly. Here an example when I select a row and then the next one:
    "https://drive.google.com/file/d/0B7DcxH-qq_HTUkk1NTRaMmUyVUE/view?usp=sharing":https://drive.google.com/file/d/0B7DcxH-qq_HTUkk1NTRaMmUyVUE/view?usp=sharing

    What is wrong in my source code ?

    Thank you in advance.

    1 Reply Last reply
    0
    • dheerendraD Offline
      dheerendraD Offline
      dheerendra
      Qt Champions 2022
      wrote on last edited by
      #2

      Difficult to check like this. How about sharing the complete sample code which gives this problem ? I can look at the output & respond back.

      Dheerendra
      @Community Service
      Certified Qt Specialist
      http://www.pthinks.com

      1 Reply Last reply
      1

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved