Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. Model View Programming
QtWS25 Last Chance

Model View Programming

Scheduled Pinned Locked Moved German
2 Posts 1 Posters 1.7k 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.
  • T Offline
    T Offline
    ThomasJoachim
    wrote on last edited by
    #1

    Hallo

    Ich habe in einer Zelle eines QTableView eine ComboBox als Editor und dafür ein Delegate gemacht.
    Die unten stehende Methode setModelData wird auch aufgerufen.
    Allerdings für alle Spalten.
    Folgende Probleme tauchen auf:

    1. Obwohl ich im Debugger sehe, dass es sich bei dem model um mein Model handelt wird die dort implementierte setModelData - Methode nicht aufgerufen.
      Das Model ist abgeleitet von QAbstractItemModel.
    2. Da die Methode für alle Spalten aufgerufen wird habe ich den Aufruf für alle anderen Spalten an QItemDelegate::setModelData(...) weitergeleitet. Aber auch für diese Daten wird mein Model nicht aufgerufen.

    Was ist da falsch?

    @
    void ComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
    {
    QComboBox comboBox = static_cast<QComboBox>(editor);
    if (index.column() == ToolTableModel::Col_ToolSenseOfDirection)
    {
    model->setData(index, comboBox->currentIndex(), Qt::EditRole);
    }
    QItemDelegate::setModelData(editor,model,index);
    }
    @

    1 Reply Last reply
    0
    • T Offline
      T Offline
      ThomasJoachim
      wrote on last edited by
      #2

      Hallo,

      Da gibt es ein weiteres Problem. Diesmal in dem Model selbst:
      Folgende Deklaration habe ich dort für setData:
      @
      bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole ) const;
      @
      Nun ist überall dokumentiert, dass setData das signal "dataCanged" aufrufen soll.
      Damit kommt der Compiler aber überhaupt nicht klar:

      error C2662: 'QAbstractItemModel::dataChanged': this-Zeiger kann nicht von 'const EditToolTableModel' in 'QAbstractItemModel &' konvertiert werden

      Was ist da nicht in Ordnung?

      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