Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QML TableView未调用QAbstractTableModel headerData()-函数_C++_Qt_Qml_Qtquick2 - Fatal编程技术网

C++ QML TableView未调用QAbstractTableModel headerData()-函数

C++ QML TableView未调用QAbstractTableModel headerData()-函数,c++,qt,qml,qtquick2,C++,Qt,Qml,Qtquick2,我目前正在使用QML/QtQuick TableView。数据显示->很好。我目前唯一无法工作的是标题:就我理解QT模型概念而言,TabLVIEW应该自动调用C++ QuasCuTababl::Head数据(int切片,QT::取向,INTION)< /C>函数。但是,当我添加一个qDebug()时,您能给我们看一下您的代码吗?现在添加了一些代码摘录。希望它们能有所帮助。@mozzbozz您是否尝试过使用以下方法设置数据:setHeaderData(int-section,Qt::Orient

我目前正在使用QML/QtQuick TableView。数据显示->很好。我目前唯一无法工作的是标题:就我理解QT模型概念而言,TabLVIEW应该自动调用C++ <代码> QuasCuTababl::Head数据(int切片,QT::取向,INTION)< /C>函数。但是,当我添加一个
qDebug()时,您能给我们看一下您的代码吗?现在添加了一些代码摘录。希望它们能有所帮助。@mozzbozz您是否尝试过使用以下方法设置数据:
setHeaderData(int-section,Qt::Orientation,const-QVariant&value,int-role=Qt::EditRole)
?@Chernobyl:没有,因为我认为只有在有可编辑模型的情况下才能实现该功能。然而,我的是静态的,只在开始时初始化一次。但是headerData()函数仍然应该被Qt调用,不是吗?您找到解决方案了吗?我正在尝试使用QML+PyQt编写一个类似的东西,它带有一个
TableView
和一个自定义模型(一个
QAbstractTableModel
,显示关于正则表达式匹配的信息)。QML似乎调用的唯一方法是
rowCount
,它可以找到,所有其他方法都没有调用,我也不知道为什么。。。
QVariant myModel::headerData(int section, Qt::Orientation orientation, int role) const
{
    qDebug() << "Hello World!";
}

[... I left out the implementation of the other functions
 here as they work as expected ...]
#ifndef MYMODEL_H
#define MYMODEL_H

#include <QAbstractTableModel>

#include "inputvectors.h"

class MyModel : public QAbstractTableModel
{
    Q_OBJECT

public:
    MyModel (QObject *parent = 0);
    // InputVectors is just another class I use but it basically
    // contains two `QList`s
    MyModel (InputVectors *inputData, QObject *parent=0);

    int rowCount(const QModelIndex &parent) const;
    int columnCount(const QModelIndex &parent) const;
    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
    QVariant headerData(int section, Qt::Orientation orientation, int role) const;

protected:
    QHash<int, QByteArray> roleNames() const;

private:
    InputVectors *inputData;
};

#endif // MYMODEL_H
[...]
TableView {
    id: myTableView
    anchors.fill: parent
    frameVisible: false
    model: controller.getInputVectorsModel()

    TableViewColumn {
        role: "row_line_numbers"
        width: 40
        delegate: Item {
            Text { text: styleData.value; anchors.left:parent.left;anchors.leftMargin: 12}
        }
    }
}
[...]