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