QTableWidget控制項總結

來源:互聯網
上載者:User

標籤:blog   http   color   使用   資料   os   

【1】QTableWidget簡介

QTableWidget是QT對話方塊設計中常用的顯示資料表格的控制項。

學習QTableWidget就要首先看看QTableView控制項(控制項也是有”家世“的!就像研究人一樣一樣的),因為QTableWidget繼承於類QTableView。

兩者主要區別是QTableView可以使用自訂的資料模型來顯示內容(也就意味著使用時先要通過setModel來綁定資料來源),而QTableWidget則只能使用標準的資料模型。

QTableWidget儲存格資料是QTableWidgetItem對象來實現的(即就是不需要資料來源,儲存格內的資訊需要逐個填充即可)。

這主要由於QTableView類中有setModel成員函數,而到了QTableWidget類中,該成員函數變成了私人。

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

【2】QTableWidget控制項屬性

(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();

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.