1. 程式人生 > >關於獲得qt tableview行數等資訊

關於獲得qt tableview行數等資訊

做了一個小的demo,關於獲得qt tableview行數的獲取,用的是QTableview類裡的訊號,程式碼如下所示:

//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QModelIndex>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

public slots:
    void get_data(QModelIndex data);

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
這個是標頭檔案,建立了一個槽函式。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QStandardItemModel>

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

    QStandardItemModel *model =new QStandardItemModel();

     ui->tableView->setColumnWidth(0,145);
     ui->tableView->setColumnWidth(1,130);
     //ui->tableView->setColumnWidth(2,70);

     model->setColumnCount(2);
     model->setHeaderData(0,Qt::Horizontal,tr("日期"));
     model->setHeaderData(1,Qt::Horizontal,tr("溫度記錄"));

     model->setItem(0,0,new QStandardItem("2015-07-30"));
     model->setItem(0,1,new QStandardItem(tr("31℃")));

     model->setItem(1,0,new QStandardItem("2015-07-31"));
     model->setItem(1,1,new QStandardItem(tr("32℃")));



     ui->tableView->setModel(model);

     connect(ui->tableView,SIGNAL(clicked(QModelIndex)),this,SLOT(get_data(QModelIndex)));
}

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


void MainWindow::get_data(QModelIndex data)
{
    ui->lineEdit->setText(QString::number(data.row()));
}

這個檔案是原始檔,可以用此方法獲得所在行資料,內容等