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ù)組的代碼,完美解決內(nèi)存溢出以及內(nèi)存回收問(wèn)題,有需要的小伙伴可以參考下。2016-02-02c語(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-03C語(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-12OpenCV實(shí)現(xiàn)智能視頻監(jiān)控
這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)智能視頻監(jiān)控,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08C++實(shí)現(xiàn)旅館住宿管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)旅館住宿管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05C++實(shí)現(xiàn)教工考勤信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)教工考勤信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05