QTableWidget 用法總結(持續添加)

一. 對QTableWidget本身的效果實現

1. 將表格變爲禁止編輯

tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
QAbstractItemView.NoEditTriggers 不能對錶格內容進行修改
QAbstractItemView.CurrentChanged 任何時候都能對單元格修改
QAbstractItemView.DoubleClicked 雙擊單元格後可編輯
QAbstractItemView.SelectedClicked 單擊單元格後可編輯
QAbstractItemView.EditKeyPressed 任何按鍵可編輯
QAbstractItemView.AnyKeyPressed 任何按鍵可編輯
QAbstractItemView.AllEditTriggers 以上條件全包括

2. 設置表格爲整行選擇

tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);  //整行選中的方式
QAbstractItemView.SelectionBehavior枚舉還有如下類型:
QAbstractItemView.SelectItems		選中單個單元格
QAbstractItemView.SelectColumns		選中一列

3.單個選中和多個選中的設置:

tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);  //設置爲可以選中多個目
該函數的參數還可以是:
QAbstractItemView.NoSelection 不能選擇
QAbstractItemView.SingleSelection 選中單個目標
QAbstractItemView.MultiSelection 選中多個目標


4. 表格表頭的顯示與隱藏

tableWidget->verticalHeader()->setVisible(false); //隱藏列表頭
tableWidget->horizontalHeader()->setVisible(false); //隱藏行表頭

5. 對錶頭文字的字體、顏色進行設置

QTableWidgetItem *columnHeaderItem0 = tableWidget->horizontalHeaderItem(0); //獲得水平方向表頭的Item對象
columnHeaderItem0->setFont(QFont("Helvetica")); //設置字體
columnHeaderItem0->setBackgroundColor(QColor(0,60,10)); //設置單元格背景顏色
columnHeaderItem0->setTextColor(QColor(200,111,30)); //設置文字顏色

6. 在單元格里加入控件:

QComboBox *comBox = new QComboBox();
comBox->addItem("Y");
comBox->addItem("N");
tableWidget->setCellWidget(0,2,comBox);

二. 對單元格的進行設置

1. 單元格設置字體顏色和背景顏色 及字體字符

QTableWidgetItem *item = new QTableWidgetItem("Apple");// item->setBackgroundColor(QColor(0,60,10));//設置背景色 層setTextColor(QColor(200,111,100));//設置字體顏色 item->setFont(QFont("Helvetica"));//設置字體 tableWidget->setItem(0,3,item);//爲tableWidget添加item
另:如果需要對所有的單元格都使用這種字體,則可以使用  tableWidget->setFont(QFont("Helvetica"));

2. 設置單元格內文字的對齊方式

item->setTextAlignment(Qt.AlignHCenter |  Qt.AlignVCenter)
水平方向:Qt.AlignLeft,Qt.AlignRight,Qt.AlignHCenter,Qt.AlignJustify
垂直方向:Qt.AlignTop,Qt.AlignBottom,Qt.AlignVCenter
如果兩種都要設置,只要用 Qt.AlignHCenter |  Qt.AlignVCenter 的方式即可

3. 合併單元格效果的實現:

tableWidget->setSpan(0, 0, 3, 1)  # 其參數爲: 要改變單元格的   1行數  2列數     要合併的  3行數  4列數

4. 設置單元格的大小

首先,可以指定某個行或者列的大小
tableWidget->setColumnWidth(3,200);
tableWidget->setRowHeight(3,60);
//根據內容自動改變行列的大小
tableWidget->resizeColumnsToContents();
tableWidget->resizeRowsToContents();

5. 獲得單擊單元格的內容

通過實現 itemClicked (QTableWidgetItem *) 信號的槽函數,就可以獲得鼠標單擊到的單元格指針,進而獲得其中的文字信息
connect(tableWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(getItem(QTreeWidgetItem*,int)));
//將itemClicked信號與函數getItem綁定

6.QTableWidget使用

int row = rowCount(); removeRow(row);//清除已有的行列 
setShowGrid(true);//顯示錶格線 
verticalHeader()->setVisible(false);//隱藏左邊垂直 
QHeaderView *headerView = horizontalHeader(); headerView->setMovable(false);//去除表頭的移動 
headerView->resizeSection(0,284);//設置第一列寬 
headerView->resizeSection(1,127);//設置第二列寬 
headerView->setResizeMode(QHeaderView::Fixed);//列表不能移動 
headerView->setClickable(false);//不響應鼠標單擊 
setEditTriggers(QTableWidget::NoEditTriggers);//不能編輯 
setSelectionBehavior(QTableWidget::SelectRows);//一次選中一行 
setSelectionMode(QAbstractItemView::SingleSelection);//只能單選 
/*QScrollBar *scrollBar = horizontalScrollBar(); scrollBar->hide();*/ s
etHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滾動條 
setVerticalScrollMode(QAbstractItemView::ScrollPerItem);//垂直滾動條按項移動 
setAutoScroll(false);//去掉自動滾動



























發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章