QTableWidget樣式美化:
說明:筆記為代碼修改方式,value:代表值,tableWidget替代ui->tabelwidget[控件名稱]
頭文件#include <QTableWidget>
創建一個tablewidget
QTableWidget *tabelWidget = new QTableWidget ;
設置行數
tableWidget->setRowCount(value);
設置列數
tableWidget->setColumnCount(value);
QTableWidget設置表頭內容
QStringList header;
header<<tr("value")<<tr("value")<<tr("value");
tableWidget->setHorizontalHeaderLabels(header);
設置充滿表寬度[表格自動橫向填充滿控件]
tableWidget->horizontalHeader()->setStretchLastSection(true);
設置無邊框
tableWidget->setFrameShape(QFrame::NoFrame);
設置不顯示格子線
tableWidget->setShowGrid(false);
去除選中虛線框
tableWidget->setFocusPolicy(Qt::NoFocus);
設置垂直頭不可見
tableWidget->verticalHeader()->setVisible(false);
設置水平、垂直滾動條樣式
tableWidget->horizontalScrollBar()->setStyleSheet( “[美化內容參照QScrollArea樣式美化]” );
tableWidget->verticalScrollBar()->setStyleSheet(“[美化內容參照QScrollArea樣式美化]” );
修改表格編輯狀態權限
tableWidget->setEditTriggers(QAbstractItemView::value);
value常用參數:
NoEditTriggers--不能對表格內容進行修改
CurrentChanged--任何時候都能對單元格修改
DoubleClicked--雙擊單元格
SelectedClicked--單擊已選中的內容
AnyKeyPressed--按下任意鍵就能修改
設置表格選擇方式
tableWidget->setSelectionBehavior(QAbstractItemView::value);
value常用參數:
SelectItems--選中單個單元格
SelectRows--選中一行
SelectColumns--選中一列)
單個選中和多個選中的設置
tableWidget->setSelectionMode(QAbstractItemView::value);
value常用參數:
NoSelection--不能選擇
SingleSelection--選中單個目標
MultiSelection--選中多個目標
ExtendedSelection/ContiguousSelection 的區別不明顯,主要功能是正常情況下是單選,但按下Ctrl或Shift鍵后,可以多選)
表格表頭的顯示與隱藏
tableWidget->verticalHeader()->setVisible(false); //隱藏列表頭
tableWidget->horizontalHeader()->setVisible(false); //隱藏行表頭
設置表頭字體及顏色
//獲得水平方向表頭的Item對象
QTableWidgetItem *columnHeaderItem = tableWidget->horizontalHeaderItem(0);
columnHeaderItem->setFont(QFont("value")); //設置字體
columnHeaderItem->setBackgroundColor(QColor(0,0,0)); //設置單元格背景顏色
columnHeaderItem->setTextColor(QColor(0,0,0)); //設置文字顏色
在單元格里加入控件:
tableWidget->setCellWidget(value x , value y , [你的控件]);
設置單元格字體顏色、背景顏色和字體字符:
QTableWidgetItem *item = new QTableWidgetItem("顯示的文字");
item->setBackgroundColor(QColor(0,0,0));
item->setTextColor(QColor(0,0,0));
item->setFont(QFont("value"));
tableWidget->setItem(0,0,item);
//所有的單元格都使用
tableWidget->setFont(QFont("value"));
合並單元格
//參數為: 要改變單元格的1行數、2列數,要合並的3行數、4列數
tableWidget->setSpan(0, 0, 3, 1) ;
設置單元格寬高
tableWidget->setColumnWidth(3,200); //行
tableWidget->setRowHeight(3,60); //列
//行和列的大小設為與內容相匹配
tableWidget->resizeColumnsToContents();
tableWidget->resizeRowsToContents();
調整表格行寬
//使列完全填充並平分
tableWidget->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
//行自適應寬度
tableWidget->verticalHeader()->setResizeMode(QHeaderView::Stretch);
//根據內容調整列寬
tableWidget->resizeColumnsToContents();
設置某列列寬
tableWidget->headerView->resizeSection(0,284);//設置第一列寬
內容清除
tableWidget->clear();//清除所有可見數據(包括表頭),行還在
tableWidget->clearContents();//只清除表中數據,不清除表頭內容
tableWidget->setRowCount( column );//或者直接設置行數為0,則所有行內容清除掉
表格排序,將某列按升序/降序的方式排列
tableWidget->sortByColumn( column , Qt::AscendingOrder);
獲取某一格的內容
QString proName = tableWidget->item(row, column)->text();
添加一行
int row = tableWidget->rowCount();//獲取表格中當前總行數
tableWidget->setRowCount(row+1);//加一