标签: qmodelindex

QAbstractTableModel:index()与createIndex()

在继承QAbstractTableModel时,获取给定行和列的QModelIndex的正确方法是什么(例如,提供方便的方法数据(int row,int column))?

有index()和createIndex() - 他们似乎都这样做?

例:

TableModel::data(int row, int column, int role) const
{
    return data(index(row, column), role);
}
Run Code Online (Sandbox Code Playgroud)

qt qmodelindex

4
推荐指数
1
解决办法
5293
查看次数

QML TreeView 的 C++ 模型

由于缺少任何其他 Qt 演示,我正在使用 Qt 小部件的SimpleTreeModel演示为我的 QML TreeView 实现 C++ 模型。我已经定义了角色,所以 QML 可以使用它,但我无法将它们与实际模型数据连接起来。

我还发现有趣的是小部件(C++)演示工作正常,但TreeModel似乎没有将数据存储为其成员变量..让我摸不着头脑。我发现了这一点,每个 TreeItem 都存储其所有子项,而 TreeModel 只有一个rootItem将所有数据存储为其子项。

TreeItem 类

class TreeItem
{
public:
    explicit TreeItem(const QList<QVariant> &data, TreeItem *parentItem = 0);
    ~TreeItem();

    void appendChild(TreeItem *child);

    TreeItem *child(int row);
    int childCount() const;
    int columnCount() const;
    QVariant data(int column) const;
    int row() const;
    TreeItem *parentItem();

private:
    QList<TreeItem*> m_childItems;
    QList<QVariant> m_itemData;
    TreeItem *m_parentItem;
};
Run Code Online (Sandbox Code Playgroud)

TreeModel 类

class TreeModel : public QAbstractItemModel
{
    Q_OBJECT

public:
    enum DisplayRoles …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qmodelindex

4
推荐指数
1
解决办法
2671
查看次数

QT - 如何从QTableView中的单行获取值

我有一个QTableView记录很少,一行包含四列.我需要获取这4个索引值(名称,姓氏,年龄,用户名)以便将其删除SQLite,因此我需要将这四个值放入删除查询中.我希望点击的各项指标THAT行,并取回所有4个值.我该怎么做?谢谢

sqlite qt qtableview qmodelindex

3
推荐指数
1
解决办法
6660
查看次数

从QTableView读取和写入文件

如何读取和写入文本文件日期进入QTableView?

这就是我所拥有的,但我希望在将数据添加到表中时保存数据,当然可以在重新打开应用程序时将其读回.有没有我可以参考的教程?

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    model = new QStandardItemModel();
    model->setRowCount(0);
    ui->tableView->setModel(model);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QStandardItem *userName = new QStandardItem(ui->lineEdit_Name->text());
    QStandardItem *userNumber = new QStandardItem(ui->lineEdit_Number->text());

    QList<QStandardItem*> row;
    row <<userName << userNumber;

    model->appendRow(row);
}
Run Code Online (Sandbox Code Playgroud)

非常感谢

编辑--------------------------------

这对我有用:

添加功能:

 void MainWindow::on_pushButto_Add_clicked() {
     QStandardItem *userInput = new QStandardItem(ui->lineEdit->text());
     QStandardItem *userInput2= new QStandardItem(ui->lineEdit_2->text());

     QList<QStandardItem*> row;
     row <<userInput << userInput2;

     model->appendRow(row); 
}
Run Code Online (Sandbox Code Playgroud)

保存功能:

void MainWindow::on_pushButton_Save_clicked()
{
    QFile file("C:/Users/UserName/Practicing/Resources_Files/someFile.bin");

     if (file.open(QIODevice::WriteOnly))
     {
         QDataStream stream(&file);
         qint32 n …
Run Code Online (Sandbox Code Playgroud)

qt qtableview qstandarditemmodel qmodelindex

2
推荐指数
1
解决办法
8068
查看次数

Qt - 如何从64开始设置QTableWidget行索引而不是从0开始?

我有128个项目的结构向量.我应该将前64个项目放在第一个QTableWidget中,剩余的64个项目放到第二个QTableWidget中.必须在我的结构向量中显示"索引"数字.那些是Id号码.我使用UI设计器设计了我的ui,我尝试在那里更改QTableWidget第一行号,但它没有用.如何初始化索引以0开头的第一个tablewidget以及索引从64开始的第二个tablewidget.请帮助guyz ...在此先感谢.


请帮我解决这个问题.

我将使用快照图像清楚地解释它.!这里我有2个QTableWidgets.每个表窗口小部件的行ID都为1.第二个小部件的行ID 不应该与1.相反,它必须是65.(因为我有128个项目,前64个项目进入第一个表格,其余64个项目应放在第二个表格中).希望大家都明白我的要求.请帮我.在此输入图像描述

qt4 qtablewidget qt4.7 qt4.8 qmodelindex

0
推荐指数
1
解决办法
4513
查看次数