qt中QTableWidget的使用

来源:互联网 发布:麦道夫骗局知乎 编辑:程序博客网 时间:2024/06/05 18:31

QTableWidget是QTableView的子类,要是用QTableWidget就必须使用QTableWidgetItem。QTableWidgetItem用来表示表格中的一个单元格,整个表格都需要用逐个单元格构建起来。

//构造了一个QTableWidget对象,并且设置为10行,5列QTableWidget *tableWidget=new QTableWidget(10,5);上面功能还有另外一种形式:QTableWidget *tableWidget=new QTableWidget;tableWidget->setRowCount(10);tableWidget->setColumnCount(5);//设置标题tableWidget->setWindowTitle("QTableWidget & Item");//设置表格tableWidget->resize(350,200);QStringList header;header<<"Month"<<"Description";tableWidget->setHorizontalHeaderLabels(header);tableWidget->setItem(0,0,new QTableWidgetItem("Jan"));tableWidget->setItem(1,0,new QTableWidgetItem("Feb"));tableWidget->setItem(2,0,new QTableWidgetItem("Mar"));tableWidget->setItem(0,1,new QTableItem(QIcon("1.png"),"Jan`s month"));//将表格变为禁止编辑tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);QAbstractItemView::CurrentChanged--任何时候都能对单元格进行修改QAbstractItemView::DoubleClicked--双击单元格QAbstractItemView::SelectedClicked--单击已选中的内容QAbstractItemView::EditKeyPressedQAbstractItemView::AnyKeyPressed--按下任意键就能修改QAbstractItemView::AllEditTriggers--以上条件全包括//设置表格为整行选择tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);QAbstractItemView::SelectItems--选中单个单元格QAbstractItemView::SelectRows--选中一行QAbstractItemView::SelectColumns--选中一列//单个选中和多个选中的设置tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);--设置为可以选中多个目标QAbstractItemView::NoSelection--不能选择QAbstractItemView::SingleSelection--选中单个目标QAbstractItemView::MultiSelection--选中多个目标QAbstractItemView::ExtendedSelection(ContiguousSelection)--正常情况下是单选,按下Ctrl和Shift键后,可以多选//表格表头的显示与隐藏tableWidget->verticalHeader()->setVisible(false);--隐藏列表头tableWidget->horizontalHeader()->setVisible(false);--隐藏行表头//对表头文字的字体、颜色进行设置QTableWidgetItem *columnHeaderItem0=tableWidget->horizontalHeaderItem(0);--获取水平方向表头的Item对象columnHeaderItem0->setFont(QFont("Helvetica"))--设置字体columnHeaderItem0->setBackgroundColor(QColor(0,60,10))--设置单元格背景颜色columnHeaderItem0->setTextColor(QColor(200,111,30))--设置文字颜色//在单元格中添加控件QComboBox *comBox=new QComboBox();comBox->addItem("Y");comBox->addItem("N");tableWidget->setCellWidget(0,2,comBox);---------------------------------------------------------------------------------------对QTableWidgetItem的设置://单元格设置字体颜色和背景颜色及字体字符QTableWidgetItem *item=new QTableWidgetItem("Apple");item->setBackgroundColor(QColor(0,60,10));item->setTextColor(QColor(200,111,100));item->setFont(QFont("Helvetica"));tableWidget->setItem(0,3,item);//设置单元格内文字的对齐方式item->setTextAlignment();//水平对齐方式有:Qt.AlignLeftQt.AlignRightQt.AlignHCenterQt.AlignJustify//垂直对齐方式有:Qt.AlignTopQt.AlignBottomQt.AlignVCenter注意:如果以上两种形式都要设置可以用:Qt.AlignHCenter|Qt.AlignVCenter//合并单元格效果的实现tableWidget->setSpan(0,0,3,1)--参数代表了--0,0代表了要改变的单元格的行数和列数--3,1代表了要合并的行数和列数//设置单元格的大小1.可以指定某个行或者列的大小:tableWidget->setColumnWidth(3,200);tableWidget->setRowHeight(3,60);2.可以将行和列的大小设为与内容相匹配tableWidget->resizeColumnsToContents();tableWidget->resizeRowsToContents();
原创粉丝点击