最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

QTableView類實現(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,"卡號");
  model->setHeaderData(1,Qt::Horizontal,"姓名");

二、設置表格屬性:

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

水平對齊方式有:

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.

垂直對齊方式:

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.

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

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

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

反之則設置不會生效。如上述代碼所示。

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

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

四、為單元格添加圖標

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

七、設置表格(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.選中單個單元格

QAbstractItemView.SelectRows

1

Selecting only rows.選中一行

QAbstractItemView.SelectColumns

2

Selecting only columns.選中一列

十、選擇方式:

tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); //設置為可以選中多個目標

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

QAbstractItemView.NoSelection      不能選擇

QAbstractItemView.SingleSelection  選中單個目標

QAbstractItemView.MultiSelection    選中多個目標

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

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

對于水平或垂直方法的表頭,可以用以下方式進行 隱藏/顯示 的設置:

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

十二、對表頭文字的字體、顏色進行設置

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

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

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

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)容

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

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

QTableWidget和QTableView的區(qū)別:

QTableWidget是QTableView的子類。

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

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

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

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

相關文章

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

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

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

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

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

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

    因為在家宅了好多天,隨手玩了下自己以前做的一些小游戲,說真的,有幾個游戲做的是真的劣質(zhì),譬如 flappybird 真的讓我難以忍受,于是重做了一波分享給大家
    2022-11-11
  • C語言實現(xiàn)求解素數(shù)的N種方法總結(jié)

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

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

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

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

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

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

    C++中std::invalid_argument報錯解決

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

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

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

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

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

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

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

最新評論

陵川县| 恭城| 凤阳县| 高雄市| 滦南县| 锡林郭勒盟| 云和县| 溧水县| 永安市| 汉沽区| 北宁市| 浪卡子县| 府谷县| 陆川县| 成都市| 布拖县| 宾川县| 横山县| 电白县| 会宁县| 突泉县| 宁夏| 井研县| 高安市| 巴马| 贵州省| 宿松县| 塔城市| 疏勒县| 泰安市| 化隆| 蒲江县| 长宁区| 鄂温| 大同县| 洞口县| 临泉县| 雅安市| 绥棱县| 左贡县| 镇康县|