Qt QTableView

来源:互联网 发布:ubuntu装到移动硬盘 编辑:程序博客网 时间:2024/05/20 16:33

表格数据基本需要用到QTableView 进行表示, 记录下QTableView 的使用方法和遇到的问题

创建QTableView

QTableView* table = new QTableView();    //

设置表格属性

table->setEditTriggers(QAbstractItemView::NoEditTriggers);//设置表格只读,不能进行编辑

table->setShowGrid(false);   //不显示网格线

table->verticalHeader()->hide();  //隐藏行表头 或 table->vercalHeader()->setVisible(false);


table->verricalHeader()->setDefaultSeciontSize(22);  //设置默认行高

table->horizontalHeader()->setDefaultSecionSize(100);  //设置默认列宽


#注意设置表头时需要用到头文件 #include <QHeaderView>

table->setSelectionBehavior(QAbstractItemView::SelectRows);  //设置选中时为整行选中



table->setColumnWidth(0, 100);  #设置各列宽度,注意该设置函数必须在数据模型创建并绑定之后调用才起效, 刚开始在setModel 之前调用了该函数始终没有生效

table->setColumnWidth(1, 100);

table->setColumnsWidth();    //设置所有列宽


table->resizeRowToContents(int n);   //根据内容调整某行的行高

table->resizeColumnsToContents();  //根据内容自动调整所有列的列宽


创建数据模型

QStandardItemModel* dataModel = new QStandardItemModel();table->setModel(dataModel);  //绑定数据模型//设置列表头dataModel->setHeaderData(0, Qt::Horizontal, tr("列1"));dataModel->setHeaderData(1, Qt::Horizontal, tr("列2"));//添加设置数据
dataModel->setItem(0, 0, new QStandardItem("data1"));dataModel->setItem(0, 0, new QStandardItem("data2"));//设置数据条目显示样式
dataModel->item(0, 0)->setTextAlignment(Qt::AlignCenter);  //设置数据居中显示
dataModel->item(0, 0)->setForeground(QBrush(QColor(255, 0, 0))); //设置数据显示颜色dataModel->item(0, 0)->setFont(Font("Microsoft YaHei", 15, 75)); //设置数据显示字体//设置表头显示样式dataModel->horizontalHeaderItem(0)->setFont(QFont("Helvetica", 10, 50));dataModel->horizontalHeaderItem(0)->setBackgroundColor(QColor("0,0, 0")); //设置单元格背景颜色dataModel->horizontalHeaderItem(0)->setTextColor(QColor("100, 100, 100")); //设置字体颜色
dataModel->sort();  //数据排序单元格加入控件, 比如加一个下拉框到单元格QComBox *box = new QComBox();box->addItem("Y");box->addItem("N");dataModel->addCellWidget(0,0, box);  增加控件到单元格//添加一行多列数据 QStandardItem* item1 = new QStandardItem;  //标准项, 用来保存一个数据项
 item1->setData(messageTime, 0);
 QStandardItem* item2 = new QStandardItem;
 item2->setData(message, 0);
 QList<QStandardItem *> row;
 row.append(item1);
 row.append(item2);
dataModel->appendRow(row);


 

原创粉丝点击