QTableWidget控件學習

內容是從網上找的,放到這備查。函數

【1】QTableWidget簡介學習

QTableWidget是QT對話框設計中經常使用的顯示數據表格的控件。字體

學習QTableWidget就要首先看看QTableView控件(控件也是有」家世「的!就像研究人同樣同樣的),由於QTableWidget繼承於類QTableView。ui

二者主要區別是QTableView能夠使用自定義的數據模型來顯示內容(也就意味着使用時先要經過setModel來綁定數據源),而QTableWidget則只能使用標準的數據模型。spa

QTableWidget單元格數據是QTableWidgetItem對象來實現的(即就是不須要數據源,單元格內的信息須要逐個填充便可)。設計

這主要因爲QTableView類中有setModel成員函數,而到了QTableWidget類中,該成員函數變成了私有。code

使用QTableWidget就離不開QTableWidgetItem。QTableWidgetItem用來表示表格中的其中一個單元格,整個表格都須要用逐個單元格對象QTableWidgetItem構建起來。對象

【2】QTableWidget控件屬性blog

(1)禁止編輯表格繼承

在默認狀況下,表格裏的字符是能夠更改的。

好比雙擊一個單元格,就能夠修改原來的內容,若是想禁止用戶的這種操做,讓這個表格對用戶只讀,能夠這樣:

1 ui.qtablewidget->setEditTriggers(QAbstractItemView::NoEditTriggers);

(2)設置表格爲選擇整行

1 /*設置表格爲整行選中*/
2 ui.qtablewidget->setSelectionBehavior(QAbstractItemView::SelectRows);

(3)設置單個選中和多個選中

單個選中意味着每次只能夠選中一個單元格,多個就是至關於能夠選擇」一片「那種模式。

1 /*設置容許多個選中*/ 
2     ui.qtablewidget->setSelectionMode(QAbstractItemView::ExtendedSelection);

(4)表格表頭的顯示與隱藏

對於水平或垂直方向的表頭,若是不想顯示能夠用如下方式進行(隱藏/顯示)設置:

1 ui.qtablewidget->verticalHeader()->setVisible(true);  
2 ui.qtablewidget->horizontalHeader()->setVisible(false);

(5)設置具體單元格中字體的對齊方式

1 ui.qtablewidget->item(0, 0)->setTextAlignment(Qt::AlignHCenter);

(6)設置具體單元格中字體格式

1 ui.qtablewidget->item(1, 0)->setBackgroundColor(QColor(0,60,10));   
2 ui.qtablewidget->item(1, 0)->setTextColor(QColor(200,111,100)); 
3 ui.qtablewidget->item(1, 0)->setFont(QFont("Helvetica"));

(7)設置具體單元格的值

1 ui.qtablewidget->setItem(1, 0, new QTableWidgetItem(str));

(8)把QTableWidgetItem對象內容轉換爲QString

1 QString str =ui.qtablewidget->item(0, 0)->data(Qt::DisplayRole).toString();

(9)具體單元格中添加控件

1 QComboBox *comBox = new QComboBox(); 
2 comBox->addItem("F"); 
3 comBox->addItem("M"); 
4 ui.qtablewidget->setCellWidget(0,3,comBox);

(11)合併單元格

1 //合併單元格的效果
2 ui.qtablewidget->setSpan(2, 2, 3, 2);
3 //第一個參數:要改變的單元格行數
4 //第二個參數:要改變的單元格列數
5 //第三個參數:須要合併的行數
6 //第四個參數:須要合併的列數

(12)具體單元格中插入圖片

ui.qtablewidget->setItem(3, 2, new QTableWidgetItem(QIcon("images/music.png"), "Music"));

(13)設置顯示網格

ui.qtablewidget->setShowGrid(true);//顯示錶格線

(14)設置滾動條

ui.qtablewidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滾動條

(15)設置列標籤

複製代碼
1     //初始化界面
 2     QStringList  HStrList;
 3     HStrList.push_back(QString("name"));
 4     HStrList.push_back(QString("id"));
 5     HStrList.push_back(QString("age"));
 6     HStrList.push_back(QString("sex"));
 7     HStrList.push_back(QString("department"));
 8     
 9 
10     //設置行列數(只有列存在的前提下,才能夠設置列標籤)
11     int HlableCnt = HStrList.count();
12     ui.qtablewidget->setRowCount(10);
13     ui.qtablewidget->setColumnCount(HlableCnt);
14 
15     //設置列標籤
16     ui.qtablewidget->setHorizontalHeaderLabels(HStrList);
複製代碼

(16)設置行和列的大小設爲與內容相匹配

1 ui.qtablewidget->resizeColumnsToContents();  
2 ui.qtablewidget->resizeRowsToContents();

(17)設置字體

ui.qtablewidget->setFont(font);   //設置字體

(18)獲取某一單元格的內容

1 QString strText = ui.qtablewidget->item(0, 0)->text();

 (19)個性化設置

    學習  qt assistant  "qt style sheets"

  例如:setStyleSheet("QTableWidget{ gridline-color : rgb(255, 0, 0)}");設置表格線的顏色爲紅色

相關文章
相關標籤/搜索