欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Qt GUI圖形圖像開發(fā)之Qt表格控件QTableView簡(jiǎn)單使用方法及QTableView與QTableWidget區(qū)別

 更新時(shí)間:2020年03月12日 17:11:54   作者:亭臺(tái)六七座  
這篇文章主要介紹了Qt GUI圖形圖像開發(fā)之Qt表格控件QTableView簡(jiǎn)單使用方法,需要的朋友可以參考下

QTableView是Qt中用來把數(shù)據(jù)集以表格形式提供給用戶的一個(gè)控件

QTableView類實(shí)現(xiàn)表格視圖,QTableView的數(shù)據(jù)由繼承QAbstractItemModel的子類models來提供

#include<QStandardItemModel>
  QStandardItemModel *model = new QStandardItemModel();
  ui->tableView->setModel(model);

一、添加表頭:

  model->setColumnCount(2);
  model->setHeaderData(0,Qt::Horizontal,"卡號(hào)");
  model->setHeaderData(1,Qt::Horizontal,"姓名");

二、設(shè)置表格屬性:

ui->tableView->setModel(model);
//表頭信息顯示居左
ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);

水平對(duì)齊方式有:

Constant Value Description
Qt.AlignLeft 0x0001 Aligns with the left edge.
Qt.AlignRight 0x0002 Aligns with the right edge.
Qt.AlignHCenter 0x0004 Centers horizontally in the available space.
Qt.AlignJustify 0x0008 Justifies the text in the available space.

垂直對(duì)齊方式:

Constant Value Description
Qt.AlignTop 0x0020 Aligns with the top.
Qt.AlignBottom 0x0040 Aligns with the bottom.
Qt.AlignVCenter 0x0080 Centers vertically in the available space.

如果兩種都要設(shè)置,只要用 Qt.AlignHCenter |  Qt.AlignVCenter 的方式即可

//設(shè)置列寬不可變
ui->tableView->horizontalHeader()->setResizeMode(0,QHeaderView::Fixed);
ui->tableView->horizontalHeader()->setResizeMode(1,QHeaderView::Fixed);
ui->tableView->setColumnWidth(0,101);
ui->tableView->setColumnWidth(1,102);

注:在進(jìn)行表格設(shè)置時(shí)必須是“ui->tableView->setModel(model);”在前,屬性具體設(shè)置在后,

反之則設(shè)置不會(huì)生效。如上述代碼所示。

三、添加行(添加三行一樣的信息):

 for(int i = 0; i < 3; i++)
 {
     model->setItem(i,0,new QStandardItem("2009441676"));
        //設(shè)置字符顏色
     model->item(i,0)->setForeground(QBrush(QColor(255, 0, 0)));
        //設(shè)置字符位置
     model->item(i,0)->setTextAlignment(Qt::AlignCenter);
     model->setItem(i,1,new QStandardItem(QString::fromLocal8Bit("哈哈")));
 }

四、為單元格添加圖標(biāo)

  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 QTableWidgetItem(QIcon("images/IED.png"), "Jan's month")); 
  tableWidget->setItem(1,1,new QTableWidgetItem(QIcon("images/IED.png"), "Feb's month")); 
  tableWidget->setItem(2,1,new QTableWidgetItem(QIcon("images/IED.png"), "Mar's month"));

五、刪除行:

//x是指定刪除哪一行
model->removeRow(x);
//刪除所有行
model->removeRows(0,model->rowCount());

六、取表格(3,3)文本

model->item(3,3)->text()

七、設(shè)置表格(3,3)文本

model->item(3,3)->setText("123");

八、禁止編輯

ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);  //禁止編輯

九、選擇整行

ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);  //選擇整行

Constant

Value

Description

QAbstractItemView.SelectItems

0

Selecting single items.選中單個(gè)單元格

QAbstractItemView.SelectRows

1

Selecting only rows.選中一行

QAbstractItemView.SelectColumns

2

Selecting only columns.選中一列

十、選擇方式:

tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); //設(shè)置為可以選中多個(gè)目標(biāo)

該函數(shù)的參數(shù)還可以是:

QAbstractItemView.NoSelection      不能選擇

QAbstractItemView.SingleSelection  選中單個(gè)目標(biāo)

QAbstractItemView.MultiSelection    選中多個(gè)目標(biāo)

QAbstractItemView.ExtendedSelection   QAbstractItemView.ContiguousSelection 的區(qū)別不明顯,主要功能是正常情況下是單選,但按下Ctrl或Shift鍵后,可以多選

十一、表格表頭的顯示與隱藏

對(duì)于水平或垂直方法的表頭,可以用以下方式進(jìn)行 隱藏/顯示 的設(shè)置:

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

十二、對(duì)表頭文字的字體、顏色進(jìn)行設(shè)置

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

十三、在單元格里加入控件:

QTableWidget不僅允許把文字加到單元格,還允許把控件也放到單元格中。比如,把一個(gè)下拉框加入單元格,可以這么做:

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

十四、合并單元格

tableWidget->setSpan(0, 0, 3, 1) //其參數(shù)為: 要改變單元格的  1行數(shù) 2列數(shù)   要合并的 3行數(shù) 4列數(shù)

十五、獲取被單擊表格內(nèi)容

通過實(shí)現(xiàn) itemClicked (QTableWidgetItem *) 信號(hào)的槽函數(shù),就可以獲得鼠標(biāo)單擊到的單元格指針,進(jìn)而獲得其中的文字信息

connect(tableWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(getItem(QTreeWidgetItem*,int)));
//將itemClicked信號(hào)與函數(shù)getItem綁定

QTableWidget和QTableView的區(qū)別:

QTableWidget是QTableView的子類。

主要的區(qū)別是QTableView可以使用自定義的數(shù)據(jù)模型來顯示內(nèi)容(也就是先要通過setModel來綁定數(shù)據(jù)源),而QTableWidget則只能使用標(biāo)準(zhǔn)的數(shù)據(jù)模型,并且其單元格數(shù)據(jù)是QTableWidgetItem的對(duì)象來實(shí)現(xiàn)的(也就是不需要數(shù)據(jù)源,將逐個(gè)單元格內(nèi)的信息填好即可)。

這主要體現(xiàn)在QTableView類中有setModel成員函數(shù),而到了QTableWidget類中,該成員函數(shù)變成了私有。

使用QTableWidget就離不開QTableWidgetItem。QTableWidgetItem用來表示表格中的一個(gè)單元格,正個(gè)表格都需要用逐個(gè)單元格構(gòu)建起來。

本文簡(jiǎn)單介紹了Qt表格控件QTableView簡(jiǎn)單使用方法及QTableView與QTableWidget區(qū)別,更多關(guān)于Qt表格控件QTableView使用技巧請(qǐng)查看下面的相關(guān)鏈接

相關(guān)文章

  • C++原地刪除有序數(shù)組重復(fù)項(xiàng)的N種方法

    C++原地刪除有序數(shù)組重復(fù)項(xiàng)的N種方法

    給定一個(gè)排序數(shù)組,你需要在原地刪除重復(fù)出現(xiàn)的元素,使得每個(gè)元素只出現(xiàn)一次,返回移除后數(shù)組的新長(zhǎng)度,不要使用額外的數(shù)組空間,你必須在 原地 修改輸入數(shù)組 并在使用O(1)額外空間的條件下完成,故本文介紹了C++原地刪除有序數(shù)組重復(fù)項(xiàng)的N種方法,需要的朋友可以參考下
    2025-03-03
  • C++中 string 中的常用方法使用心得

    C++中 string 中的常用方法使用心得

    這篇文章主要介紹了C++中 string 中的常用方法使用心得,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • C語言FlappyBird飛揚(yáng)的小鳥實(shí)現(xiàn)開發(fā)流程

    C語言FlappyBird飛揚(yáng)的小鳥實(shí)現(xiàn)開發(fā)流程

    因?yàn)樵诩艺撕枚嗵欤S手玩了下自己以前做的一些小游戲,說真的,有幾個(gè)游戲做的是真的劣質(zhì),譬如 flappybird 真的讓我難以忍受,于是重做了一波分享給大家
    2022-11-11
  • C語言實(shí)現(xiàn)求解素?cái)?shù)的N種方法總結(jié)

    C語言實(shí)現(xiàn)求解素?cái)?shù)的N種方法總結(jié)

    哈嘍各位友友們,今天又學(xué)到了很多有趣的知識(shí),現(xiàn)在迫不及待的想和大家分享一下!本文將手把手帶領(lǐng)大家探討利用試除法、篩選法求解素?cái)?shù)的n層境界!都是精華內(nèi)容,可不要錯(cuò)過喲
    2023-01-01
  • C語言實(shí)現(xiàn)會(huì)員管理系統(tǒng)

    C語言實(shí)現(xiàn)會(huì)員管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)會(huì)員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++ OpenCV實(shí)現(xiàn)抖音"藍(lán)線挑戰(zhàn)"特效

    C++ OpenCV實(shí)現(xiàn)抖音"藍(lán)線挑戰(zhàn)"特效

    這篇文章主要介紹了如何使用OpenCV C++ 實(shí)現(xiàn)抖音上的特效“藍(lán)線挑戰(zhàn)”。文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)OpenCV有一定的幫助,需要的可以參考一下
    2022-01-01
  • C++中std::invalid_argument報(bào)錯(cuò)解決

    C++中std::invalid_argument報(bào)錯(cuò)解決

    在C++編程中,std::invalid_argument是一個(gè)常見的異常,用于指示函數(shù)參數(shù)無效,文章詳細(xì)解析了這一異常的產(chǎn)生原因,并提供了多種解決策略,感興趣的可以了解一下
    2024-09-09
  • C++使用CriticalSection實(shí)現(xiàn)線程同步實(shí)例

    C++使用CriticalSection實(shí)現(xiàn)線程同步實(shí)例

    這篇文章主要介紹了C++使用CriticalSection實(shí)現(xiàn)線程同步實(shí)例,是使用CriticalSection對(duì)前文實(shí)例的擴(kuò)展,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C語言實(shí)現(xiàn)統(tǒng)計(jì)100以內(nèi)所有素?cái)?shù)的個(gè)數(shù)

    C語言實(shí)現(xiàn)統(tǒng)計(jì)100以內(nèi)所有素?cái)?shù)的個(gè)數(shù)

    本文詳細(xì)講解了C語言實(shí)現(xiàn)統(tǒng)計(jì)100以內(nèi)所有素?cái)?shù)個(gè)數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì)。需要的朋友可以收藏下,方便下次瀏覽觀看
    2021-11-11
  • c++ 實(shí)現(xiàn)KMP算法

    c++ 實(shí)現(xiàn)KMP算法

    這篇文章主要介紹了c++ 實(shí)現(xiàn)KMP算法的示例,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-10-10

最新評(píng)論