使用QTableWidget时遇到的用法

8 篇文章 0 订阅
6 篇文章 0 订阅

最近用到QTableWidget,里面的东西很多不会用,在网上查的资料挺全的,但是还是想自己做个整理,省的以后到处找。

表头的相关设置

    //设置列数
    ui->tableWidget->setColumnCount( int );

    //设置表头内容
    ui->tableWidget->setHorizontalHeaderLabels( QStringList );

    //显式隐藏窗口小部件
    ui->tableWidget->verticalHeader()->setVisible( false );

    //设置选择行为,以行为单位
    ui->tableWidget->setSelectionBehavior( QAbstractItemView::SelectRows );
    
    //设置选择模式,选择单行
    ui->tableWidget->setSelectionMode( QAbstractItemView::SingleSelection );

    //当点击任意行时,表头字体加粗
    ui->tableWidget->horizontalHeader()->setHighlightSections(false);

    //根据表头内容自动调整列宽,可能会有空白的空间
    ui->tableWidget->horizontalHeader()->setSectionResizeMode( QHeaderView::ResizeToContents );
    或者:    ui->tableWidget->resizeColumnsToContents();
    
    //根据空间大小自动调整列宽,不会留有空白
    ui->tableWidget->horizontalHeader()->setSectionResizeMode( QHeaderView::Stretch );

    //删除表格线
    ui->tableWidget_defectInfo->clearContents();

    //删除表中所有内容。但是表格线删除不了
    ui->tableWidget_defectInfo->setRowCount(0);

将单元格内放小部件

    //放QcomboBox( 带下拉框 )
    QComboBox *cameraStauts = new QComboBox;
    cameraStauts->addItems( QStringList );
    cameraStauts->setCurrentText( QString );//此时的QSting是QStringList中的某一个
    ui->tableWidget->setCellWidget( row, column, comboBox );


    // 放item
    QTableWidgetItem *exposureValue = new QTableWidgetItem;
    exposureValue->setText( QString) );
    ui->tableWidget->setItem( row, column, exposureValue );

其他小用法

 //居中   
ui->tableWidget->item( row, column )->setTextAlignment( Qt::AlignCenter );
 
//不可编辑,但字体不会变灰   
ui->tableWidget->item( 行, 列 )->setFlags( item->flags() & (~Qt::ItemIsEditable) );

//合并单元格
ui->tableWidget->setSpan( 行, 列, 行跨度, 列跨度 );

//清除合并单元格
ui->tableWidget->clearSpans();

//返回某行列合并单元格的行数
int rowCount = ui->tableWidget->rowSpan( 行, 列 );

//获取某单元格的内容
ui->tableWidget->item( 行, 列 )->text();

//在第int行插一行
ui->tableWidget->insertRow( int );

//加int行
ui->tableWidget->setRow( int );

//删除第int行
ui->tableWidget->removeRow( int );

//当前行数
ui->tableWidget->currentRow();

//当前列数
ui->tableWidget->currentcolumn();

//总行数
ui->tableWidget->RowCount();

//总列数
ui->tableWidget->columnCount();

将( moveRow, j )的内容放到( insertRow, j )中去
ui->tableWidget->setItem( insertRow, j, ui->tableWidget->takeItem( moveRow, j ) );

将( moveRow, j )的内容放到( insertRow, j )中去
ui->tableWidget->setCellWidget( insertRow, j, ui->tableWidget->cellWidget(moveRow, j) );

//选中的单元格
QList<QTableWidgetItem *> items = ui->tableWidget->selectedItems();

//选中的范围
ui->tableWidget->selectedRanges();

//在含有垂直滚动条,添加行时,会出现QTableWidget的控件乱序的情况下,可防止控件乱序
ui->tableWidget->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel );

//读取数值QComboBox(强制转化)
QComboBox *comboBox = static_cast<QComboBox*>( ui->tableWidget->cellWidget( 行,列 ) );
QString comboBoxText = comboBox->currentText();

//读取数值QTableWidgetItem(强制转化)
QTableWidgetItem *item = static_cast<QTableWidgetItem*>(ui->tableWidget->item(行,列 ));
QString itemText = item->text();

//判断单元格是否为空
if ( ui->tableWidget->item( currentRow, 1 )->text() == NULL )

注:

   在对QTableWidget进行了合并单元格的背景下,对表格中的行进行上下移或者添加等改动时,此时合并单元格可能会错乱,此时的解决方法是:先清除合并,再根据实际情况重新进行合并,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值