QTableWidget 用法总结

//原创,请勿转载


1. QTableWidget 建议对应的数据模型(QStandardItemModel)(MVC模式)

#include <QStandardItemModel>
QStandardItemModel *data_model;
data_model = new QStandardItemModel();
//设置数据模型 表头
    data_model->setHorizontalHeaderItem(0, new QStandardItem(QObject::tr("File name")));
    data_model->setHorizontalHeaderItem(1, new QStandardItem(QObject::tr("Dx")));
    data_model->setHorizontalHeaderItem(2, new QStandardItem(QObject::tr("Dy")));
    data_model->setHorizontalHeaderItem(3, new QStandardItem(QObject::tr("Dz")));

2.QTableWidget设置

    //利用setModel()方法将数据模型与QTableView绑定
    ui.tb_data->setModel(data_model);
    //设置表格的各列的宽度值        
    ui.tb_data->setColumnWidth(0, 300);
    ui.tb_data->setColumnWidth(1, 100);
    ui.tb_data->setColumnWidth(2, 100);
    ui.tb_data->setColumnWidth(3, 100);

    //选择模式设置
    ui.tb_data->setSelectionMode(QAbstractItemView::SingleSelection); //设置选择模式,选择单行
    ui.tb_data->setSelectionBehavior(QAbstractItemView::SelectRows);
    ui.tb_data->setEditTriggers(QAbstractItemView::NoEditTriggers);

3. 填充数据并显示

//数据
struct DataItem
{
    std::string filaname;
    float dx, dy, dz;
};
std::vector<DataItem> _tb_list;+

//显示函数
void icp_view::present()
{
    auto iter = _tb_list.end();
    iter--;
    data_model->setItem(_tb_list.size()-1, 0, new QStandardItem(QString(zt::ztUtil::str2qstr(iter->filaname))));
    data_model->setItem(_tb_list.size() - 1, 1, new QStandardItem(QString("%1").arg(iter->dx)));
    data_model->setItem(_tb_list.size() - 1, 2, new QStandardItem(QString("%1").arg(iter->dy)));
    data_model->setItem(_tb_list.size() - 1, 3, new QStandardItem(QString("%1").arg(iter->dz)));
    ui.tb_data->update();
}

4. 双击响应函数

//信号槽
connect(ui.tb_data, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(testSlot(int, int)));

void Table_RC::testSlot(int row, int column)
{
    QTableWidgetItem *item1 = new QTableWidgetItem;
    item1 = ui.tb_data->item(row, 0);
    ui.pushButton->setTest(Item->text());
}

//2018年7月2日

如果整个table连text都没有,那么将不会发送cellDoubleClicked信号。!













猜你喜欢

转载自blog.csdn.net/qq_26272885/article/details/80881614
今日推荐