QTableWidget

Posted ike_li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QTableWidget相关的知识,希望对你有一定的参考价值。

1.QTableWidget继承自QTableView。

QSqlTableModel能与QTableView绑定,但不能于QTableWidget绑定。? QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象来实现的(也就是不需要数据源,将逐个单元格内的信息填好即可)。这主要体现在QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的一个单元格,正个表格都需要用逐个单元格构建起来。

QTableWidget和QTableView区别见:https://blog.csdn.net/zyc_csdn/article/details/78830542

 

 

  tbl_task_list=new QTableWidget(this);
    tbl_task_list->setMinimumHeight (150);
    tbl_task_list->setMaximumWidth (500);
    tbl_task_list->setColumnCount(5);
    tbl_task_list->verticalHeader()->setVisible(false);
    tbl_task_list->horizontalHeader()->setVisible(true);
    tbl_task_list->setShowGrid(true); //设置显示格子线
    tbl_task_list->setEditTriggers(QAbstractItemView::NoEditTriggers);
    tbl_task_list->setSelectionBehavior(QAbstractItemView::SelectRows);
    tbl_task_list->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

    QStringList header_task;
    header_task<<"任务名称"<<"小车"<<"任务状态"<<"任务产生时间"<<"任务相应时间";
    tbl_task_list->setHorizontalHeaderLabels(header_task);
    tbl_task_list->setObjectName("tbl_task_list");

/*
    //添加一行数据
    rows=tbl_task_list->rowCount ()+1;
    tbl_task_list->setRowCount (rows);
    addTaskItem("111",rows-1,0);
    addTaskItem("222",rows-1,1);
    addTaskItem("333",rows-1,2);
    addTaskItem("444",rows-1,3);
    addTaskItem("555",rows-1,4);

    //添加一行数据
    rows=tbl_task_list->rowCount ()+1;
    tbl_task_list->setRowCount (rows);
    addTaskItem("aaa",rows-1,0);
    addTaskItem("bbb",rows-1,1);
    addTaskItem("cccc",rows-1,2);
    addTaskItem("dddd",rows-1,3);
    addTaskItem("eeee",rows-1,4);

 

void Widget::addTaskItem(QString data,int row ,int col)
{
    QTableWidgetItem *item = new QTableWidgetItem(data);
    QFont font;
    font.setFamily ("Verdana");
    font.setBold (false);
    font.setPixelSize (12);
    item->setFont(font);
    item->setTextAlignment (Qt::AlignCenter);
    tbl_task_list->setItem(row,col,item);
}

 

以上是关于QTableWidget的主要内容,如果未能解决你的问题,请参考以下文章

qtablewidget怎么设置列宽度均分窗口宽度

从数组中动态设置 QTableWidget 的内容

QT编程,如何用代码实现 QTableWidget中滚动条的移动

QTableWidget:只允许数字

循环遍历行 QTableWidget

将可检查组合框的文本显示到 QTableWidget