我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C/C++中的Qt StandardItemModel数据模型怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C/C++中的Qt StandardItemModel数据模型怎么使用

这篇文章主要讲解了“C/C++中的Qt StandardItemModel数据模型怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C/C++中的Qt StandardItemModel数据模型怎么使用”吧!

QStandardItemModel 是标准的以项数据为单位的基于M/V模型的一种标准数据管理方式,Model/View 是Qt中的一种数据编排结构,其中Model代表模型,View代表视图,视图是显示和编辑数据的界面组件,而模型则是视图与原始数据之间的接口,通常该类结构都是用在数据库中较多,例如模型结构负责读取或写入数据库,视图结构则负责展示数据,其条理清晰,编写代码便于维护。

QStandardItemModel组件通常会配合TableView组件一起使用,当数据库或文本中的记录发生变化时会自动同步到组件中,首先绘制UI界面。

C/C++中的Qt StandardItemModel数据模型怎么使用

其次绑定顶部ToolBar菜单,分别对菜单增加对应的功能属性的描述等。

C/C++中的Qt StandardItemModel数据模型怎么使用

初始化构造函数: 当程序运行时,我们需要对页面中的控件逐一初始化,并将Table表格与模型通过调用ui->tableView->setModel(model)进行绑定。

#include "mainwindow.h"#include "ui_mainwindow.h"#include <iostream>#include <QLabel>#include <QStandardItem>#include <QItemSelectionModel>#include <QFileDialog>#include <QTextStream>#include <QList>// 默认构造函数// https://www.cnblogs.com/lysharkMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow){    ui->setupUi(this);    // 初始化部分    model = new QStandardItemModel(3,FixedColumnCount,this);  // 数据模型初始化    selection = new QItemSelectionModel(model);               // Item选择模型    // 为TableView设置数据模型    ui->tableView->setModel(model);               // 设置数据模型    ui->tableView->setSelectionModel(selection);  // 设置选择模型    // 默认禁用所有Action选项,只保留打开    ui->actionSave->setEnabled(false);    ui->actionView->setEnabled(false);    ui->actionAppend->setEnabled(false);    ui->actionDelete->setEnabled(false);    ui->actionInsert->setEnabled(false);    // 创建状态栏组件,主要来显示单元格位置    LabCurFile = new QLabel("当前文件:",this);    LabCurFile->setMinimumWidth(200);    LabCellPos = new QLabel("当前单元格:",this);    LabCellPos->setMinimumWidth(180);    LabCellPos->setAlignment(Qt::AlignHCenter);    LabCellText = new QLabel("单元格内容:",this);    LabCellText->setMinimumWidth(150);    ui->statusbar->addWidget(LabCurFile);    ui->statusbar->addWidget(LabCellPos);    ui->statusbar->addWidget(LabCellText);    //选择当前单元格变化时的信号与槽    connect(selection,SIGNAL(currentChanged(QModelIndex,QModelIndex)),this,SLOT(on_currentChanged(QModelIndex,QModelIndex)));}MainWindow::~MainWindow(){    delete ui;}

初始化时同时需要绑定一个on_currentChanged(QModelIndex,QModelIndex)信号,当用户选中指定单元格时相应用户。

// 选择单元格变化时的响应,通过在构造函数中绑定信号和槽函数实现触发// https://www.cnblogs.com/lysharkvoid MainWindow::on_currentChanged(const QModelIndex &current, const QModelIndex &previous){   Q_UNUSED(previous);    if (current.isValid()) //当前模型索引有效    {        LabCellPos->setText(QString::asprintf("当前单元格:%d行,%d列",current.row(),current.column())); //显示模型索引的行和列号        QStandardItem   *aItem;        aItem=model->itemFromIndex(current); //从模型索引获得Item        this->LabCellText->setText("单元格内容:"+aItem->text()); //显示item的文字内容    }}

当页面被初始化时,默认界面如下:

C/C++中的Qt StandardItemModel数据模型怎么使用

打开并填充组件: 当工具栏中打开文件被点击后则触发,打开文件时通过aFile.open打开,循环读入文件,并将文件中的内容逐行追加到QStringList fFileContent中,当追加完毕后,直接调用iniModelFromStringList(fFileContent);完成对页面TableView组件的初始化,并设置其他控件状态为可点击。

void MainWindow::on_actionOpen_triggered(){    QString curPath=QCoreApplication::applicationDirPath(); // 获取应用程序的路径        // 调用打开文件对话框打开一个文件    // https://www.cnblogs.com/lyshark    QString aFileName=QFileDialog::getOpenFileName(this,"打开一个文件",curPath,"数据文件(*.txt);;所有文件(*.*)");    if (aFileName.isEmpty())    {        return; // 如果未选择文件则退出    }    QStringList fFileContent;                              // 文件内容字符串列表    QFile aFile(aFileName);                                // 以文件方式读出    if (aFile.open(QIODevice::ReadOnly | QIODevice::Text)) // 以只读文本方式打开文件    {        QTextStream aStream(&aFile);       // 用文本流读取文件        ui->plainTextEdit->clear();        // 清空列表        // 循环读取只要不为空        while (!aStream.atEnd())        {            QString str=aStream.readLine();          // 读取文件的一行            ui->plainTextEdit->appendPlainText(str); // 添加到文本框显示            fFileContent.append(str);                // 添加到StringList        }        aFile.close();                               // 关闭文件        iniModelFromStringList(fFileContent);        // 从StringList的内容初始化数据模型    }    // 打开文件完成后,就可以将Action全部开启了    ui->actionSave->setEnabled(true);    ui->actionView->setEnabled(true);    ui->actionAppend->setEnabled(true);    ui->actionDelete->setEnabled(true);    ui->actionInsert->setEnabled(true);    // 打开文件成功后,设置状态栏当前文件列    this->LabCurFile->setText("当前文件:"+aFileName);//状态栏显示}

如上iniModelFromStringList(fFileContent);函数是后期增加的,我们需要自己实现,该函数的作用是从传入的StringList中获取数据,并将数据初始化到TableView模型中,实现代码如下。

void MainWindow::iniModelFromStringList(QStringList& aFileContent){    int rowCnt=aFileContent.count();     // 文本行数,第1行是标题    model->setRowCount(rowCnt-1);        // 实际数据行数,要在标题上减去1    // 设置表头    QString header=aFileContent.at(0);         // 第1行是表头    // 一个或多个空格、TAB等分隔符隔开的字符串、分解为一个StringList    // https://www.cnblogs.com/lyshark    QStringList headerList=header.split(QRegExp("\\s+"),QString::SkipEmptyParts);    model->setHorizontalHeaderLabels(headerList); // 设置表头文字    // 设置表格中的数据    int x = 0,y = 0;    QStandardItem *Item;    // 有多少列数据就循环多少次    // https://www.cnblogs.com/lyshark    for(x=1; x < rowCnt; x++)    {        QString LineText = aFileContent.at(x);    // 获取数据区的一行        // 一个或多个空格、TAB等分隔符隔开的字符串、分解为一个StringList        QStringList tmpList=LineText.split(QRegExp("\\s+"),QString::SkipEmptyParts);        // 循环列数,也就是循环FixedColumnCount,其中tmpList中的内容也是.        for(y=0; y < FixedColumnCount-1; y++)        {            Item = new QStandardItem(tmpList.at(y)); // 创建item            model->setItem(x-1,y,Item);              // 为模型的某个行列位置设置Item        }        // 最后一个数据需要取出来判断,并单独设置状态        Item=new QStandardItem(headerList.at(y));   // 最后一列是Checkable,需要设置        Item->setCheckable(true);                   // 设置为Checkable        // 判断最后一个数值是否为0        if (tmpList.at(y) == "0")            Item->setCheckState(Qt::Unchecked);   // 根据数据设置check状态        else            Item->setCheckState(Qt::Checked);        model->setItem(x-1,y,Item); //为模型的某个行列位置设置Item    }}

初始化组件后效果如下:

C/C++中的Qt StandardItemModel数据模型怎么使用

实现添加一行数据: 为TableView添加一行数据,在文件末尾插入。

void MainWindow::on_actionAppend_triggered(){    QList<QStandardItem *> ItemList;   // 创建临时容器    QStandardItem *Item;    // 模拟添加一列的数据    for(int x=0; x<FixedColumnCount-1; x++)    {        Item = new QStandardItem("测试(追加行)");    // 循环创建每一列        ItemList << Item;                          // 添加到链表中    }    // 创建最后一个列元素,由于是选择框所以需要单独创建    // https://www.cnblogs.com/lyshark    // 1.获取到最后一列的表头下标,最后下标为6    QString str = model->headerData(model->columnCount()-1,Qt::Horizontal,Qt::DisplayRole).toString();    Item=new QStandardItem(str); // 创建 "是否合格" 字段    Item->setCheckable(true);    // 设置状态为真    ItemList << Item;            // 最后一个选项追加进去    model->insertRow(model->rowCount(),ItemList);                 // 插入一行,需要每个Cell的Item    QModelIndex curIndex=model->index(model->rowCount()-1,0);     // 创建最后一行的ModelIndex    selection->clearSelection();                                      // 清空当前选中项    selection->setCurrentIndex(curIndex,QItemSelectionModel::Select); // 设置当前选中项为当前选择行}

插入代码演示效果:

C/C++中的Qt StandardItemModel数据模型怎么使用

实现插入一行数据: 为TableView插入一行数据(在文件任意位置插入数据)

// https://www.cnblogs.com/lysharkvoid MainWindow::on_actionInsert_triggered(){    QList<QStandardItem*> ItemList;       // QStandardItem的列表类    QStandardItem *Item;    // 模拟插入前五列数据    for(int i=0;i<FixedColumnCount-1;i++)    {        Item= new QStandardItem("测试(插入行)");  // 新建一个QStandardItem        ItemList << Item;                        // 添加到列表类    }    QString str;                               // 获取表头文字    str=model->headerData(model->columnCount()-1,Qt::Horizontal,Qt::DisplayRole).toString();    Item=new QStandardItem(str);      // 创建Item    Item->setCheckable(true);         // 设置为可使用CheckBox    ItemList<<Item;                   // 添加到列表类    QModelIndex curIndex=selection->currentIndex(); // 获取当前选中项的索引    model->insertRow(curIndex.row(),ItemList);      // 在当前行的前面插入一行    selection->clearSelection();                                       // 清除当前选中项    selection->setCurrentIndex(curIndex,QItemSelectionModel::Select);  // 设置当前选中项为当前选择行}

插入代码演示效果:

C/C++中的Qt StandardItemModel数据模型怎么使用

实现删除一行数据: 删除数据之前需要通过selection->currentIndex()确定当前选中行,并通过model->removeRow()移除即可。

// https://www.cnblogs.com/lysharkvoid MainWindow::on_actionDelete_triggered(){    QModelIndex curIndex = selection->currentIndex();  // 获取当前选择单元格的模型索引    // 先判断是不是最后一行    if (curIndex.row()==model->rowCount()-1)    {        model->removeRow(curIndex.row()); //删除最后一行    }    else    {        model->removeRow(curIndex.row());//删除一行,并重新设置当前选择行        selection->setCurrentIndex(curIndex,QItemSelectionModel::Select);    }}

删除代码效果演示:

C/C++中的Qt StandardItemModel数据模型怎么使用

实现字体数据对齐: 表格中的字体可以实现多种对其方式,对齐方式分为 居中对齐,左对齐,右对齐 三种。

// 设置表格居中对齐void MainWindow::on_pushButton_clicked(){    if (!selection->hasSelection())        return;    QModelIndexList selectedIndex=selection->selectedIndexes();    QModelIndex Index;    QStandardItem *Item;    for (int i=0; i<selectedIndex.count(); i++)    {        Index=selectedIndex.at(i);        Item=model->itemFromIndex(Index);        Item->setTextAlignment(Qt::AlignHCenter);    }}// 设置表格左对齐// https://www.cnblogs.com/lysharkvoid MainWindow::on_pushButton_2_clicked(){    if (!selection->hasSelection()) //没有选择的项        return;//获取选择的单元格的模型索引列表,可以是多选    QModelIndexList selectedIndex=selection->selectedIndexes();    for (int i=0;i<selectedIndex.count();i++)    {        QModelIndex aIndex=selectedIndex.at(i); //获取其中的一个模型索引        QStandardItem* aItem=model->itemFromIndex(aIndex);//获取一个单元格的项数据对象        aItem->setTextAlignment(Qt::AlignLeft);//设置文字对齐方式    }}// 设置表格右对齐void MainWindow::on_pushButton_3_clicked(){    if (!selection->hasSelection())        return;    QModelIndexList selectedIndex=selection->selectedIndexes();    QModelIndex aIndex;    QStandardItem *aItem;    for (int i=0;i<selectedIndex.count();i++)    {        aIndex=selectedIndex.at(i);        aItem=model->itemFromIndex(aIndex);        aItem->setTextAlignment(Qt::AlignRight);    }}

对齐代码效果演示:

C/C++中的Qt StandardItemModel数据模型怎么使用

实现字体数据加粗: 将选中行的字体进行加粗显示。

// 设置字体加粗显示// https://www.cnblogs.com/lysharkvoid MainWindow::on_pushButton_4_clicked(){    if (!selection->hasSelection())        return;//获取选择单元格的模型索引列表    QModelIndexList selectedIndex=selection->selectedIndexes();    for (int i=0;i<selectedIndex.count();i++)    {        QModelIndex aIndex=selectedIndex.at(i); //获取一个模型索引        QStandardItem* aItem=model->itemFromIndex(aIndex);//获取项数据        QFont font=aItem->font(); //获取字体        font.setBold(true); //设置字体是否粗体        aItem->setFont(font); //重新设置字体    }

加粗代码效果演示:

C/C++中的Qt StandardItemModel数据模型怎么使用

实现保存文件: 当保存文件被点击后触发,通过便利TableWidget模型组件中的数据,并将数据通过aStream << str << "\n";写出到记事本中。

// https://www.cnblogs.com/lyshark// 【保存文件】void MainWindow::on_actionSave_triggered(){    QString curPath=QCoreApplication::applicationDirPath(); // 获取应用程序的路径    // 调用打开文件对话框选择一个文件    QString aFileName=QFileDialog::getSaveFileName(this,tr("选择一个文件"),curPath,"数据文件(*.txt);;所有文件(*.*)");    if (aFileName.isEmpty()) // 未选择文件则直接退出        return;    QFile aFile(aFileName);    // 以读写、覆盖原有内容方式打开文件    if (!(aFile.open(QIODevice::ReadWrite | QIODevice::Text | QIODevice::Truncate)))        return;    QTextStream aStream(&amp;aFile);    // 用文本流读取文件    QStandardItem *Item;    QString str;    int x = 0,y = 0;    ui-&gt;plainTextEdit-&gt;clear();// 获取表头文字    for (x=0; x&lt;model-&gt;columnCount(); x++)    {        Item=model-&gt;horizontalHeaderItem(x);     // 获取表头的项数据        str= str + Item-&gt;text() + "\t\t";        // 以TAB制表符隔开    }    aStream &lt;&lt; str &lt;&lt; "\n";                      // 文件里需要加入换行符\n    ui-&gt;plainTextEdit-&gt;appendPlainText(str);// 获取数据区文字    for ( x=0; x &lt; model-&gt;rowCount(); x++)    {        str = "";        for( y=0; y &lt; model-&gt;columnCount()-1; y++)        {            Item=model-&gt;item(x,y);            str=str + Item-&gt;text() + QString::asprintf("\t\t");        }        // 对最后一列需要转换一下,如果判断为选中则写1否则写0        Item=model-&gt;item(x,y);        if (Item-&gt;checkState()==Qt::Checked)            str= str + "1";        else            str= str + "0";         ui-&gt;plainTextEdit-&gt;appendPlainText(str);         aStream &lt;&lt; str &lt;&lt; "\n";    }}// 【导出Txt文件】:将TableView中的数据导出到PlainTextEdit显示void MainWindow::on_actionView_triggered(){        ui-&gt;plainTextEdit-&gt;clear();        QStandardItem *Item;        QString str;    //获取表头文字        int x=0,y=0;        for (x=0; x&lt;model-&gt;columnCount(); x++)        { //            Item=model-&gt;horizontalHeaderItem(x);            str= str + Item-&gt;text() + "\t";        }        ui-&gt;plainTextEdit-&gt;appendPlainText(str);    //获取数据区的每行        for (x=0; x&lt;model-&gt;rowCount(); x++)        {            str="";            for(y=0; y&lt;model-&gt;columnCount()-1; y++)            {                Item=model-&gt;item(x,y);                str= str + Item-&gt;text() + QString::asprintf("\t");            }            Item=model-&gt;item(x,y);            if (Item-&gt;checkState()==Qt::Checked)                str= str + "1";            else                str= str + "0";             ui-&gt;plainTextEdit-&gt;appendPlainText(str);        }}

文件保存后如下:

C/C++中的Qt StandardItemModel数据模型怎么使用

感谢各位的阅读,以上就是“C/C++中的Qt StandardItemModel数据模型怎么使用”的内容了,经过本文的学习后,相信大家对C/C++中的Qt StandardItemModel数据模型怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C/C++中的Qt StandardItemModel数据模型怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C/C++中的Qt StandardItemModel数据模型怎么使用

这篇文章主要讲解了“C/C++中的Qt StandardItemModel数据模型怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C/C++中的Qt StandardItemModel
2023-06-21

C/C++ Qt数据库SqlRelationalTable关联表怎么使用

本篇内容介绍了“C/C++ Qt数据库SqlRelationalTable关联表怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先我
2023-06-22

C#的可空数据类型怎么使用

这篇文章主要介绍“C#的可空数据类型怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#的可空数据类型怎么使用”文章能帮助大家解决问题。C# 可空类型(Nullable)C# 提供了一个特殊的
2023-06-17

C++的数据类型怎么正确使用

本篇内容主要讲解“C++的数据类型怎么正确使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++的数据类型怎么正确使用”吧!前言C++不像python,创建变量的时候必须指定类型,这样才能给变
2023-06-29

C#中数据类型string怎么用

这篇文章主要为大家展示了“C#中数据类型string怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#中数据类型string怎么用”这篇文章吧。string是各种编程语言中最基础的数据类型
2023-06-17

怎么使用C/C++ QT的QChart绘制组件

本篇内容主要讲解“怎么使用C/C++ QT的QChart绘制组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用C/C++ QT的QChart绘制组件”吧!QtCharts 组件是QT中提
2023-06-25

C++ 函数模板中类型参数的使用技巧?

使用类型参数技巧可以创建针对任何类型工作的通用 c++++ 函数模板,包括:声明类型参数:使用尖括号 和 typename 声明类型参数。使用类型参数:在函数体内使用类型参数作为类型声明。实战案例:使用类型参数创建通用 stack 类 p
C++ 函数模板中类型参数的使用技巧?
2024-04-15

C++非模板类型参数怎么用

本篇内容介绍了“C++非模板类型参数怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、非模板类型参数分类:模板参数分类类型形参与非类型
2023-06-26

怎么使用C++中的string类型

这篇文章主要讲解了“怎么使用C++中的string类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用C++中的string类型”吧!1、string 类1.1 和char *的异同在
2023-06-25

C#中怎么判断数据类型

C#中怎么判断数据类型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。通过这段代码,可以实现C#判断数据类型using System; using System.Colle
2023-06-18

C#泛型数组怎么使用

本篇内容介绍了“C#泛型数组怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C# 泛型和数组在 C# 2.0 中,下限为零的一维数组自
2023-06-17

C语言中字符型数据和浮点型数据怎么用

本篇内容主要讲解“C语言中字符型数据和浮点型数据怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言中字符型数据和浮点型数据怎么用”吧!字符型首先要了解ASII码,这里面有很多东东,但只要
2023-06-26

qt中怎么使用sqlite数据库

在Qt中使用SQLite数据库,首先需要在项目中包含Qt的SQL模块,然后在代码中进行数据库的连接、查询等操作。以下是使用SQLite数据库的简单示例:在.pro文件中添加QT += sql,包含Qt的SQL模块在代码中连接数据库,创建表
qt中怎么使用sqlite数据库
2024-04-09

C#中的枚举类型怎么使用

在C#中,枚举类型用于定义一组命名的整数常量。以下是枚举类型的基本用法示例:// 定义一个枚举类型public enum DaysOfWeek{Monday,Tuesday,Wednesday,Thursday,Friday,Satu
C#中的枚举类型怎么使用
2024-04-03

C#中流模型的作用是什么

C#中流模型的作用是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。访问的两种模型:在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,使
2023-06-17

C++中普通旧数据怎么使用

本篇内容主要讲解“C++中普通旧数据怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++中普通旧数据怎么使用”吧!一、什么是普通旧数据普通旧数据就是内存中的连续字节序列,是能够被“仅当作
2023-07-05

C#中怎么使用自定义数据

本篇文章为大家展示了C#中怎么使用自定义数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C#语言有很多值得学习的地方,这里我们主要介绍C#自定义数据,包括介绍每一个由DBObject派生的对象都拥
2023-06-17

C/C++ Qt QChart绘图组件的具体使用是怎么样的

这篇文章给大家介绍C/C++ Qt QChart绘图组件的具体使用是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。QtCharts 组件是QT中提供图表绘制的模块,该模块可以方便的绘制常规图形,Qtcharts
2023-06-21

C#中的泛型怎么用

这篇文章将为大家详细讲解有关C#中的泛型怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、简介泛型现在在任何一种语言中都被认为是一个高级的强有力的术语。当我在C++中***次接触模板时,我对之有些疑
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录