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

Qt?QTableWidget基本操作及使用

 更新時(shí)間:2021年11月25日 11:06:30   投稿:zx  
QTableWidget?是?Qt?中的表格組件類(lèi)。很類(lèi)似于VC、C#中的DataGrid,本文就詳細(xì)來(lái)介紹一下Qt?QTableWidget基本操作及使用,感興趣的可以了解一下

QTableWidget 是 Qt 中的表格組件類(lèi)。在窗體上放置一個(gè) QTableWidget 組件后,可以在 Property Editor 里對(duì)其進(jìn)行屬性設(shè)置,雙擊這個(gè)組件,可以打開(kāi)一個(gè)編輯器,對(duì)其 Colum、Row 和 Item 進(jìn)行編輯。

一個(gè) QTableWidget 組件的界面基本結(jié)構(gòu)如圖 1 所示,這個(gè)表格設(shè)置為 6 行 5 列。

圖 1 一個(gè) QTableWidget 表格的基本結(jié)構(gòu)和工作區(qū)的行、列索引號(hào)

表格的第 1 行稱(chēng)為行表頭,用于設(shè)置每一列的標(biāo)題,第 1 列稱(chēng)為列表頭,可以設(shè)置其標(biāo)題,但一般使用缺省的標(biāo)題,即為行號(hào)。行表頭和列表頭一般是不可編輯的。

除了行表頭和列表頭之外的表格區(qū)域是內(nèi)容區(qū),內(nèi)容區(qū)是規(guī)則的網(wǎng)格狀,如同一個(gè)二維數(shù)組,每個(gè)網(wǎng)格單元稱(chēng)為一個(gè)單元格。每個(gè)單元格有一個(gè)行號(hào)、列號(hào),圖 1 表示了行號(hào)、列號(hào)的變化規(guī)律。

在 QTableWidget 表格中,每一個(gè)單元格是一個(gè) QTable Widgetltem 對(duì)象,可以設(shè)置文字內(nèi)容、字體、前景色、背景色、圖標(biāo),也可以設(shè)置編輯和顯示標(biāo)記。每個(gè)單元格還可以存儲(chǔ)一個(gè) QVariant 數(shù)據(jù),用于設(shè)置用戶(hù)自定義數(shù)據(jù)。

圖 2 實(shí)例 Samp4_9 的運(yùn)行時(shí)界面

實(shí)例 samp4_9 以 QTableWidget 為主要組件,演示 QTableWidget 一些主要操作的實(shí)現(xiàn)。實(shí)例運(yùn)行時(shí)的界面如圖 2 所示,該實(shí)例將演示以下功能的實(shí)現(xiàn)方法:

  • 設(shè)置表格的列數(shù)和行數(shù),設(shè)置表頭的文字、格式等。
  • 初始化表格數(shù)據(jù),設(shè)置一批實(shí)例數(shù)據(jù)填充到表格里。
  • 插入行、添加行、刪除當(dāng)前行的操作。
  • 遍歷表格所有單元格,讀取表格內(nèi)容到一個(gè) QPlainTextEdit 里,表格的一行數(shù)據(jù)作為一行文本。
  • 表格上選擇的當(dāng)前單元格變化時(shí),在狀態(tài)欄顯示單元格存儲(chǔ)的信息。

界面設(shè)計(jì)與初始化

Samp4_9 的主窗體從 QMainWindow 繼承而來(lái)。在圖 2 所示的窗口上,一個(gè) QTableWidget 組件和一個(gè) QPlainTextEdit 組件組成上下分割布局 splitter。左側(cè)的按鈕都放在一個(gè) QGroupBox 組件里,釆用 Grid 布局,然后將 groupBox 與 splitter 采用左右分割布局。這是一個(gè)典型的三區(qū)分割的布局。

在主窗口類(lèi) MainWindow 里自定義了一些變量和函數(shù),用于后面的代碼實(shí)現(xiàn),下面是在 MainWindow 的 private 部分自定義的變量和函數(shù):

private:
    //自定義單元格Type的類(lèi)型,在創(chuàng)建單元格的item時(shí)使用
    enum CellType{ctName=1000,ctSex,ctBirth,ctNation,ctPartyM,ctScore};
    //各字段在表格中的列號(hào)
    enum FieldColNum{colName=0,colSex,colBirth,colNation,colScore,colPartyM};
    QLabel *labCellIndex; //狀態(tài)欄上用于顯示單元格的行號(hào)、列號(hào)
    QLabel *labCellType; //狀態(tài)欄上用于顯示單元格的type
    QLabel *labStudID; //狀態(tài)欄上用于顯示學(xué)號(hào)
    void createItemsARow(int rowNo,QString Name,QString Sex,QDate birth,QString Nation,bool isPM,int score) ; //為某一行創(chuàng)建 items

枚舉類(lèi)型 CellType 是用來(lái)表示單元格類(lèi)型的,在創(chuàng)建單元格時(shí)使用。枚舉類(lèi)型 FieldColNum 用枚舉常量表示各字段在表格中的列號(hào)。

在 MainWindow 的構(gòu)造函數(shù)里對(duì)界面進(jìn)行初始化,代碼如下:

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    setCentralWidget(ui->splitterMain);
    //狀態(tài)欄初始化創(chuàng)建
    labCellIndex = new QLabel ("當(dāng)前單元格坐標(biāo):", this);
    labCellIndex->setMinimumWidth(250);
    labCellType=new QLabel ("當(dāng)前單元格類(lèi)型:",this);
    labCellType->setMinimumWidth(200);
    labStudID=new QLabel ("學(xué)生ID: ", this);
    labStudID->setMinimumWidth(200);
    ui->statusBar->addWidget (labCellIndex) ; //加到狀態(tài)欄
    ui->statusBar->addWidget(labCellType);
    ui->statusBar->addWidget(labStudID);
}

QTableWidget 基本操作

設(shè)置表頭

界面上的“設(shè)置表頭”按鈕實(shí)現(xiàn)對(duì)表頭的設(shè)置,其 clicked() 信號(hào)的槽函數(shù)代碼如下:

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    setCentralWidget(ui->splitterMain);
    //狀態(tài)欄初始化創(chuàng)建
    labCellIndex = new QLabel ("當(dāng)前單元格坐標(biāo):", this);
    labCellIndex->setMinimumWidth(250);
    labCellType=new QLabel ("當(dāng)前單元格類(lèi)型:",this);
    labCellType->setMinimumWidth(200);
    labStudID=new QLabel ("學(xué)生ID: ", this);
    labStudID->setMinimumWidth(200);
    ui->statusBar->addWidget (labCellIndex) ; //加到狀態(tài)欄
    ui->statusBar->addWidget(labCellType);
    ui->statusBar->addWidget(labStudID);
}

行表頭各列的文字標(biāo)題由一個(gè) QStringList 對(duì)象 headerText 初始化存儲(chǔ),如果只是設(shè)置行表頭各列的標(biāo)題,使用下面一行語(yǔ)句即可:

ui->tableInfo->setHorizontalHeaderLabels(headerText);

如果需要進(jìn)行更加具體的格式設(shè)置,需要為行表頭的每個(gè)單元格創(chuàng)建一個(gè) QTableWidgetItem 類(lèi)型的變量,并進(jìn)行相應(yīng)設(shè)置。

在一個(gè)表格中,不管是表頭還是工作區(qū),每個(gè)單元格都是一個(gè) QTableWidgetItem 對(duì)象。QTableWidgetItem 對(duì)象存儲(chǔ)了單元格的所有內(nèi)容,包括字標(biāo)題、格式設(shè)置,以及關(guān)聯(lián)的數(shù)據(jù)。上面程序中的 for 循環(huán)遍歷 headerText 的每一行,用每一行的文字創(chuàng)建一個(gè) QTableWidgetItem 對(duì)象 headerltem,然后設(shè)置 headerItem 的字體大小為 12、粗體、紅色,然后將 headerltem 賦給表頭的某一列:

ui->tableInfo->setHorizontalHeaderItern (i, headerItem);

初始化表格數(shù)據(jù)

界面上的“初始化表格數(shù)據(jù)”按鈕根據(jù)表格的行數(shù),生成數(shù)據(jù)填充表格,并為每個(gè)單元格生成 QTableWidgetItem 對(duì)象,設(shè)置相應(yīng)屬性。下面是 btnlniData 的 clicked() 信號(hào)的槽函數(shù)代碼:

void MainWindow::on_btnIniData_clicked()
{ //初始化表格內(nèi)容
    QString strName,strSex;
    bool    isParty=false;

    QDate   birth;
    birth.setDate(1980,4,7);//初始化一個(gè)日期
    ui->tableInfo->clearContents();//只清除工作區(qū),不清除表頭

    int Rows=ui->tableInfo->rowCount(); //數(shù)據(jù)區(qū)行數(shù),
    for (int i=0;i<Rows;i++) //數(shù)據(jù)區(qū)第1行的編號(hào)為0,所以范圍是0~rowCount()-1
    {
        strName=QString::asprintf("學(xué)生%d",i); //學(xué)生姓名
        if ((i % 2)==0) //分奇數(shù),偶數(shù)行設(shè)置性別,及其圖標(biāo)
            strSex="男";
        else
            strSex="女";

        createItemsARow(i, strName, strSex, birth,"漢族",isParty,70); //為某一行創(chuàng)建items

        birth=birth.addDays(20); //日期加20天
        isParty =!isParty;
    }
}

QTableWidget::clearContents() 函數(shù)清除表格數(shù)據(jù)區(qū)的所有內(nèi)容,但是不清除表頭。

QTableWidget::rowCount() 函數(shù)返回表格數(shù)據(jù)區(qū)的行數(shù)。

在 for 循環(huán)里為每一行生成需要顯示的數(shù)據(jù),然后調(diào)用自定義函數(shù) createItemsARow(),為表格一行的各個(gè)單元格生成 QTableWidgetItem 對(duì)象。

createItemsARow() 是在窗體類(lèi)里自定義的函數(shù),其實(shí)現(xiàn)代碼如下:

void MainWindow::createItemsARow(int rowNo,QString Name,QString Sex,QDate birth,QString Nation,bool isPM,int score)
{ //為一行的單元格創(chuàng)建 Items
    QTableWidgetItem    *item;
    QString str;
    uint StudID=201605000; //學(xué)號(hào)基數(shù)
    //姓名
    //新建一個(gè)Item,設(shè)置單元格type為自定義的MainWindow::ctName
    item=new  QTableWidgetItem(Name,MainWindow::ctName);
    item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); //文本對(duì)齊格式
    StudID  +=rowNo; //學(xué)號(hào)=基數(shù)+ 行號(hào)
    item->setData(Qt::UserRole,QVariant(StudID));  //設(shè)置studID為data
    ui->tableInfo->setItem(rowNo,MainWindow::colName,item); //為單元格設(shè)置Item
    //性別
    QIcon   icon;
    if (Sex=="男")
        icon.addFile(":/images/icons/boy.ico");
    else
        icon.addFile(":/images/icons/girl.ico");
    item=new  QTableWidgetItem(Sex,MainWindow::ctSex); //新建一個(gè)Item,設(shè)置單元格type為自定義的 MainWindow::ctSex
    item->setIcon(icon);
    item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);//為單元格設(shè)置Item
    ui->tableInfo->setItem(rowNo,MainWindow::colSex,item);//為單元格設(shè)置Item
    //出生日期
    str=birth.toString("yyyy-MM-dd"); //日期轉(zhuǎn)換為字符串
    item=new  QTableWidgetItem(str,MainWindow::ctBirth);//新建一個(gè)Item,設(shè)置單元格type為自定義的 MainWindow::ctBirth
    item->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter); //文本對(duì)齊格式
    ui->tableInfo->setItem(rowNo,MainWindow::colBirth,item);//為單元格設(shè)置Item
    //民族
    item=new  QTableWidgetItem(Nation,MainWindow::ctNation); //新建一個(gè)Item,設(shè)置單元格type為自定義的 MainWindow::ctNation
    item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);//文本對(duì)齊格式
    ui->tableInfo->setItem(rowNo,MainWindow::colNation,item);//為單元格設(shè)置Item
    //是否黨員
    item=new  QTableWidgetItem("黨員",MainWindow::ctPartyM);//新建一個(gè)Item,設(shè)置單元格type為自定義的 MainWindow::ctPartyM
    item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);//文本對(duì)齊格式
    if (isPM)
        item->setCheckState(Qt::Checked);
    else
        item->setCheckState(Qt::Unchecked);
    item->setBackgroundColor(Qt::yellow);//Qt::green  lightGray  yellow
    ui->tableInfo->setItem(rowNo,MainWindow::colPartyM,item);//為單元格設(shè)置Item
    //分?jǐn)?shù)
    str.setNum(score);
    item=new  QTableWidgetItem(str,MainWindow::ctScore);//新建一個(gè)Item,設(shè)置單元格type為自定義的 MainWindow::ctPartyM
    item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);//文本對(duì)齊格式
    ui->tableInfo->setItem(rowNo,MainWindow::colScore,item);//為單元格設(shè)置Item
}

該表格的每一行有5列,為每一個(gè)單元格都創(chuàng)建一個(gè) QTableWidgetItem 類(lèi)型的變量 item,并做相應(yīng)的設(shè)置。

創(chuàng)建 QTableWidgetItem 使用的構(gòu)造函數(shù)的原型為:

QTableWidgetItem::QTableWidgetItem (const QString &text, int type = Type)

其中,第一個(gè)參數(shù)作為單元格的顯示文字,第二個(gè)參數(shù)作為節(jié)點(diǎn)的類(lèi)型。

例如創(chuàng)建“姓名”單元格對(duì)象時(shí)的語(yǔ)句是:

cellItem=new QtableWidgetItem(Name,MainWindow::ctName);

其中,MainWindow::ctName 是定義的枚舉類(lèi)型 CellType 的一個(gè)常量值。

“姓名”單元格還調(diào)用 setData() 函數(shù)設(shè)置了一個(gè)自定義的數(shù)據(jù),存儲(chǔ)的是學(xué)生 ID。

cellItem->setData(Qt::UserRole,QVariant(StudID));

這個(gè)自定義數(shù)據(jù)是不顯示在界面上的,但是與單元格相關(guān)聯(lián)。

QTableWidgetItem 有一些函數(shù)對(duì)單元格進(jìn)行屬性設(shè)置,如下:

  • setTextAlignment (int alignment):設(shè)置文字對(duì)齊方式。
  • setBackground(const QBrush &brush):設(shè)置單元格背景顏色。
  • setForeground(const QBrush &brush):設(shè)置單元格前景色。
  • setIcon(const QIcon &icon):為單元格設(shè)置一個(gè)顯不圖標(biāo)。
  • setFont(const QFont &font):為單元格顯示文字設(shè)置字體。
  • setCheckState(Qt::CheckState state):設(shè)置單元格勾選狀態(tài),單元格里出現(xiàn)一個(gè)QCheckBox組件。
  • setFlags(Qt::ItemFlags flags):設(shè)置單元格的一些屬性標(biāo)記。

設(shè)置好 item 的各種屬性之后,用 QTableWidget 的 setItem 函數(shù)將 item 設(shè)置為單元格的項(xiàng),例如:

ui->tableInfo->setItem(rowNo,MainWindow::colName,item);

其中,MainWindow::colName 是定義的枚舉類(lèi)型 FieldColNum 的一個(gè)常量值。

這樣初始化設(shè)置后,就可以得到如圖 2 所示的運(yùn)行時(shí)的表格內(nèi)容。表格里并沒(méi)有顯示學(xué)號(hào),學(xué)號(hào)是“姓名”單元格的關(guān)聯(lián)數(shù)據(jù)。

獲得當(dāng)前單元格數(shù)據(jù)

當(dāng)鼠標(biāo)在表格上單擊單元格時(shí),被選中的單元格是當(dāng)前單元格。通過(guò) QTableWidget 的 currentColumn() 和 currentRow() 可以獲得當(dāng)前單元格的列編號(hào)和行編號(hào)。

當(dāng)前單元格發(fā)生切換時(shí),會(huì)發(fā)射 currentCellChanged() 信號(hào)和 currentItemChanged() 信號(hào),兩個(gè)信號(hào)都可以利用,只是傳遞的參數(shù)不同。

對(duì) currentCellChanged() 信號(hào)編寫(xiě)槽函數(shù),用于獲取當(dāng)前單元格的數(shù)據(jù),以及當(dāng)前行的學(xué)生的學(xué)號(hào)信息,代碼如下:

void MainWindow::on_tableInfo_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)
{//當(dāng)前選擇單元格發(fā)生變化時(shí)的響應(yīng)
   Q_UNUSED(previousRow);
   Q_UNUSED(previousColumn);
    QTableWidgetItem* item=ui->tableInfo->item(currentRow,currentColumn); //獲取單元格的 Item
    if  (item==NULL)
        return;
    labCellIndex->setText(QString::asprintf("當(dāng)前單元格坐標(biāo):%d 行,%d 列",currentRow,currentColumn));
    int cellType=item->type();//獲取單元格的類(lèi)型
    labCellType->setText(QString::asprintf("當(dāng)前單元格類(lèi)型:%d",cellType));
    item=ui->tableInfo->item(currentRow,MainWindow::colName); //取當(dāng)前行第1列的單元格的 item
    int ID=item->data(Qt::UserRole).toInt();//讀取用戶(hù)自定義數(shù)據(jù)
    labStudID->setText(QString::asprintf("學(xué)生ID:%d",ID));//學(xué)生ID
}

在 currentCellChanged() 信號(hào)中,傳遞的參數(shù) currentRow 和 currentColumn 表示當(dāng)前單元格的行號(hào)和列號(hào),通過(guò)這兩個(gè)編號(hào)可以得到單元格的 QTableWidgetltem 對(duì)象 item。

獲得 item 之后,通過(guò) type() 函數(shù)得到單元格的類(lèi)型參數(shù),這個(gè)類(lèi)型就是為單元格創(chuàng)建 QTableWidgetItem 對(duì)象時(shí)傳遞的類(lèi)型參數(shù)。

再獲取同一行的“姓名”單元格的項(xiàng),用data()函數(shù)提取自定義數(shù)據(jù),也就是創(chuàng)建單元格時(shí)存儲(chǔ)的學(xué)生 ID。

插入、添加、刪除行

QTableWidget 處理行操作的函數(shù)如下:

  • insertRow(int row):在行號(hào)為row的行前面插入一行,如果row等于或大于總行數(shù),則在表格最后添加一行。insertRow()函數(shù)只是插入一個(gè)空行,不會(huì)為單元格創(chuàng)建QTableWidgetItem對(duì)象,需要手工為單元格創(chuàng)建。
  • removeRow(int row):刪除行號(hào)為 row 的行。

下面是界面上“插入行” “添加行”“刪除當(dāng)前行”按鈕的響應(yīng)代碼。在插入行之后,會(huì)調(diào)用 createItemsARow() 函數(shù),為新創(chuàng)建的空行的各單元格構(gòu)造 QTableWidgetItem 對(duì)象:

void MainWindow::on_btnInsertRow_clicked()
{ //插入一行
    //int curRow;
    int curRow=ui->tableInfo->currentRow();//當(dāng)前行號(hào)
    ui->tableInfo->insertRow(curRow); //插入一行,但不會(huì)自動(dòng)為單元格創(chuàng)建item
    createItemsARow(curRow, "新學(xué)生", "男",
          QDate::fromString("1990-1-1","yyyy-M-d"),"苗族",true,60 ); //為某一行創(chuàng)建items
}
void MainWindow::on_btnAppendRow_clicked()
{ //添加一行
    //int curRow;
    int curRow=ui->tableInfo->rowCount();//當(dāng)前行號(hào)
    ui->tableInfo->insertRow(curRow);//在表格尾部添加一行
    createItemsARow(curRow, "新生", "女",
          QDate::fromString("2000-1-1","yyyy-M-d"),"滿(mǎn)族",false,50 ); //為某一行創(chuàng)建items
}
void MainWindow::on_btnDelCurRow_clicked()
{//刪除當(dāng)前行及其items
    //int curRow;
    int curRow=ui->tableInfo->currentRow();//當(dāng)前行號(hào)
    ui->tableInfo->removeRow(curRow); //刪除當(dāng)前行及其items
}

自動(dòng)調(diào)整行高和列寬

QTableWidget 有幾個(gè)函數(shù)自動(dòng)調(diào)整表格的行高和列寬,分別如下:

  • resizeColumnsToContents():自動(dòng)調(diào)整所有列的寬度,以適應(yīng)其內(nèi)容。
  • resizeColumnToContents(int column):自動(dòng)調(diào)整列號(hào)為 co/www 的列的寬度。
  • resizeRowsToContents():自動(dòng)調(diào)整所有行的高度,以適應(yīng)其內(nèi)容。
  • resizeRowToContents(int row):自動(dòng)調(diào)整行號(hào)為 raw 的行的高度。

這幾個(gè)函數(shù)實(shí)際上是 QTableWidget 的父類(lèi) QTableView 的函數(shù)。

其他屬性控制

設(shè)置表格內(nèi)容是否可編輯:QTableWidget 的 EditTriggers 屬性表示是否可編輯,以及進(jìn)入編輯狀態(tài)的方式。界面上的"表格可編輯"復(fù)選框的槽函數(shù)代碼為:

void MainWindow::on_chkBoxTabEditable_clicked(bool checked)
{ //設(shè)置編輯模式
    if (checked)
        //雙擊或獲取焦點(diǎn)后單擊,進(jìn)入編輯狀態(tài)
        ui->tableInfo->setEditTriggers(QAbstractItemView::DoubleClicked | QAbstractItemView::SelectedClicked);
    else
        ui->tableInfo->setEditTriggers(QAbstractItemView::NoEditTriggers); //不允許編輯
}

設(shè)置行表頭、列表頭是否顯示:horizontalHeader()獲取行表頭,verticalHeader()獲取列表頭,然后可設(shè)置其可見(jiàn)性。

void MainWindow::on_chkBoxHeaderH_clicked(bool checked)
{
    //是否顯示水平表頭
    ui->tableInfo->horizontalHeader()->setVisible(checked);
}
void MainWindow::on_chkBoxHeaderV_clicked(bool checked)
{
    //是否顯示垂直表頭
    ui->tableInfo->verticalHeader()->setVisible(checked);
}

間隔行底色:setAltematingRowColors() 函數(shù)可以設(shè)置表格的行是否用交替底色顯示,若為交替底色,則間隔的一行會(huì)用灰色作為底色。具體底色的設(shè)置需要用 styleSheet,在后續(xù)章節(jié)會(huì)有介紹。

void MainWindow::on_chkBoxRowColor_clicked(bool checked)
{
    ui->tableInfo->setAlternatingRowColors(checked);
}

選擇模式:setSelectionBehavior() 函數(shù)可以設(shè)置選擇方式為單元格選擇,還是行選擇:

void MainWindow::on_rBtnSelectItem_clicked()
{//選擇行為:?jiǎn)卧襁x擇
    ui->tableInfo->setSelectionBehavior(QAbstractltemView::Selectltems);
}
void MainWindow::on_rBtnSelectRow_clicked()
{//選擇行為:行選擇
    ui->tableInfo->setSelectionBehavior(QAbstractltemView::SelectRows);
}

遍歷表格讀取數(shù)據(jù)

“讀取表格內(nèi)容到文本”按鈕演示了將表格數(shù)據(jù)區(qū)的內(nèi)容全部讀出的方法,它將每個(gè)單元格的文字讀出,同一行的單元格的文字用空格分隔開(kāi),作為文本的一行,然后將這行文字作為文本編輯器的一行內(nèi)容,代碼如下:

void MainWindow::on_btnReadToEdit_clicked()
{//將 QTableWidget的所有行的內(nèi)容提取字符串,顯示在QPlainTextEdit里
    QString str;
    QTableWidgetItem    *cellItem;
    ui->textEdit->clear(); //文本編輯器清空
    for (int i=0;i<ui->tableInfo->rowCount();i++) //逐行處理
    {
        str=QString::asprintf("第 %d 行: ",i+1);
       for (int j=0;j<ui->tableInfo->columnCount()-1;j++) //逐列處理,但最后一列是check型,單獨(dú)處理
        {
            cellItem=ui->tableInfo->item(i,j); //獲取單元格的item
            str=str+cellItem->text()+"   "; //字符串連接
        }
       cellItem=ui->tableInfo->item(i,colPartyM);  //最后一列,黨員
       if (cellItem->checkState()==Qt::Checked)  //根據(jù)check狀態(tài)顯示文字
           str=str+"黨員";
       else
           str=str+"群眾";
       ui->textEdit->appendPlainText(str); //添加到編輯框作為一行
    }
}

到此這篇關(guān)于Qt QTableWidget基本操作及使用的文章就介紹到這了,更多相關(guān)Qt QTableWidget內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言完美實(shí)現(xiàn)動(dòng)態(tài)數(shù)組代碼分享

    C語(yǔ)言完美實(shí)現(xiàn)動(dòng)態(tài)數(shù)組代碼分享

    本文給大家分享的是一則使用C語(yǔ)言實(shí)現(xiàn)動(dòng)態(tài)數(shù)組的代碼,完美解決內(nèi)存溢出以及內(nèi)存回收問(wèn)題,有需要的小伙伴可以參考下。
    2016-02-02
  • 基于C語(yǔ)言實(shí)現(xiàn)的迷宮算法示例

    基于C語(yǔ)言實(shí)現(xiàn)的迷宮算法示例

    這篇文章主要介紹了基于C語(yǔ)言實(shí)現(xiàn)的迷宮算法,結(jié)合具體實(shí)例形式分析了C語(yǔ)言解決迷宮問(wèn)題算法的實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-09-09
  • c語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單日歷

    c語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單日歷

    本文給大家分享的是一則使用C語(yǔ)言來(lái)實(shí)現(xiàn)的一個(gè)簡(jiǎn)單日歷的代碼,根據(jù)項(xiàng)目需求,實(shí)現(xiàn)了3個(gè)簡(jiǎn)單的小功能,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03
  • C語(yǔ)言如何計(jì)算字符串長(zhǎng)度

    C語(yǔ)言如何計(jì)算字符串長(zhǎng)度

    這篇文章主要介紹了C語(yǔ)言如何計(jì)算字符串長(zhǎng)度問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C語(yǔ)言求兩個(gè)正整數(shù)的最大公約數(shù)示例代碼

    C語(yǔ)言求兩個(gè)正整數(shù)的最大公約數(shù)示例代碼

    在C語(yǔ)言中求兩個(gè)數(shù)的最大公約數(shù)是學(xué)習(xí)循環(huán)語(yǔ)句的非常經(jīng)典的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言求兩個(gè)正整數(shù)的最大公約數(shù)的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • OpenCV實(shí)現(xiàn)智能視頻監(jiān)控

    OpenCV實(shí)現(xiàn)智能視頻監(jiān)控

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)智能視頻監(jiān)控,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • C++實(shí)現(xiàn)旅館住宿管理系統(tǒng)

    C++實(shí)現(xiàn)旅館住宿管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)旅館住宿管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++實(shí)現(xiàn)教工考勤信息管理系統(tǒng)

    C++實(shí)現(xiàn)教工考勤信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)教工考勤信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 有關(guān)C++頭文件的包含順序研究

    有關(guān)C++頭文件的包含順序研究

    下面小編就為大家?guī)?lái)一篇有關(guān)C++頭文件的包含順序研究。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • C語(yǔ)言中字符串的兩種定義方式詳解

    C語(yǔ)言中字符串的兩種定義方式詳解

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言中字符串的兩種定義方式,小編覺(jué)得這篇文章寫(xiě)的還不錯(cuò),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評(píng)論