QTableWidget相关
一、用途
- 列表显示内容
二、常用功能
2.1常用设置
- 最后一列设置
1 //隐藏最后空列,有标题最后一行自动拉伸 2 ui.QTableWidget->horizontalHeader()->setStretchLastSection(true); 3
- 列宽自动拉伸
1 2 //初始化表格间距 3 ui.QTableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
- 点击选择和编辑
1 //选择整行 2 ui.QTableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); 3 4 /* 5 QAbstractItemView::SelectItems 0 Selecting single items.选中单个单元格 6 QAbstractItemView::SelectRows 1 Selecting only rows.选中一行 7 QAbstractItemView::SelectColumns 2 Selecting only columns.选中一列 8 */ 9 10 //只选择一行 11 ui.QTableWidget->setSelectionMode(QAbstractItemView::SingleSelection); 12 /* 13 QAbstractItemView::NoSelection 不能选择 14 QAbstractItemView::SingleSelection 选中单个目标 15 QAbstractItemView::MultiSelection 选中多个目标 16 QAbstractItemView::ExtendedSelection 17 QAbstractItemView::ContiguousSelection 18 最后两个的区别不明显,主要功能是正常情况下是单选,但按下Ctrl或Shift键后,可以多选 19 */ 20 21 //设置双击不编辑 22 ui.QTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); 23 /* 24 相关参数: 25 QAbstractItemView::NoEditTriggers 0 不能对表格内容进行修改 26 QAbstractItemView::CurrentChanged 1 任何时候都能对单元格修改 27 QAbstractItemView::DoubleClicked 2 双击单元格 28 QAbstractItemView::SelectedClicked 4 单击已选中的内容 29 QAbstractItemView::EditKeyPressed 8 Editing starts when the platform edit key has been pressed over an item. 30 QAbstractItemView::AnyKeyPressed 16 按下任意键就能修改 31 QAbstractItemView::AllEditTriggers 31 以上条件全包括 32 */ 33 //悬停显示 34 ui.QTableWidget->setMouseTracking(true);
- 隐藏列号/标题行
1 //隐藏列表头 2 ui.QTableWidget->verticalHeader()->setVisible(false); 3 4 //隐藏行表头 5 ui.QTableWidget->horizontalHeader()->setVisible(false); 6 7
- 行列高宽
1 //指定行或者列的大小 2 ui.QTableWidget->setColumnWidth(3,200); 3 ui.QTableWidget->setRowHeight(3,60); 4 5 //将行和列的大小设为与内容相匹配 6 ui.QTableWidget->resizeColumnsToContents(); 7 ui.QTableWidget->resizeRowsToContents();
- 表格合并
1 //从第1行第2列位置,向右2列向下3行,合并成一个表格 2 //第一二个参数是合并的起始表格位置 3 ui.tableWidget->setSpan(0, 1, 3, 2); 4 5
2.2数据插入
- 插入一个元素
1 QTableWidgetItem *item = new QTableWidgetItem("Apple"); 2 //背景颜色 3 item->setBackgroundColor(QColor(0,60,10)); 4 //文字颜色 5 item->setTextColor(QColor(200,111,100)); 6 //字体 7 item->setFont(QFont("Helvetica")); 8 //插入第一行,第四列位置 9 ui.QTableWidget->setItem(0,3,item); 10
注意:设置QTableWidget所有表格字体:ui.QTableWidget->setFont(QFont("Helvetica"));
- 插入数据对齐
1 item->setTextAlignment() 2 3 /*水平对齐 4 Qt::AlignLeft 0x0001 居左 5 Qt::AlignRight 0x0002 居右 6 Qt::AlignHCenter 0x0004 居中 7 Qt::AlignJustify 0x0008 两端对齐 8 */ 9 10 /*垂直对齐 11 Qt::AlignTop 0x0002 顶端对齐 12 Qt::AlignBottom 0x0004 底端对齐 13 Qt::AlignVCenter 0x0080 中间对齐 14 Qt::AlignBaseline 0x0100 15 */ 16
- QComboBox插入
1 //插入下拉插件 2 QComboBox *comBox = new QComboBox(); 3 comBox->addItem("Y"); 4 comBox->addItem("N"); 5 ui.QTableWidget->setCellWidget(0,2,comBox);
2.3列表清空
三、相关参考
- 相关参考
- 官方文档:https://doc.qt.io/qt-5/qtablewidget.html