欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习记录:QT中tableview的简简简简简单单单使用

程序员文章站 2022-05-22 19:52:33
...

table view的简单使用

以.txt文件中数据为例。
拖入几个控件
学习记录:QT中tableview的简简简简简单单单使用
首先建立一个model,根据model来实现数据的修改

tmodel =new QStandardItemModel(ui->tableView);
ui->tableView->setModel(tmodel);

建立对应的槽函数,在槽函数中实现对应功能,txt文件中数据为1 2 3 4 5 6 7 8 9 10 11 12
1.打开文件

void Widget::on_pushButton_clicked()
{
    QString Filename = QFileDialog::getOpenFileName(this,QString::fromLocal8Bit("打开一个文件"),"","*.txt");//打开文件
    if(Filename !=NULL)
    {
        QFile aFile(Filename);
        if(!aFile.exists())
        {
            QMessageBox::warning(this,QString::fromLocal8Bit("警告"),QString::fromLocal8Bit("文件不存在"));
        }
        else
        {
            aFile.open(QIODevice::ReadOnly|QIODevice::Text);
            QString str = aFile.readAll();
            QStringList Lstr= str.split(" ");

            //tmodel->setHorizontalHeaderLabels(QStringList()<<QString::fromLocal8Bit("数字")<<"序号");
            for(int i=0;i<Lstr.length()/2;i++)
            {
                for(int j=0;j<2;j++)
                    tmodel->setItem(i,j,new QStandardItem(Lstr[i*2+j]));
            }
            aFile.close();
        }
    }
}

效果:
学习记录:QT中tableview的简简简简简单单单使用
2.插入数据
在选中的表格的下一行添加

void Widget::on_pushButton_2_clicked()
{
    tmodel->insertRow(ui->tableView->currentIndex().row()+1);
}

学习记录:QT中tableview的简简简简简单单单使用
3.删除
删除选中的一行

void Widget::on_pushButton_3_clicked()
{
    tmodel->removeRow(ui->tableView->currentIndex().row());
}

效果:
学习记录:QT中tableview的简简简简简单单单使用
4.保存数据

void Widget::on_pushButton_4_clicked()
{
    QString fname=QFileDialog::getSaveFileName(this,QString::fromLocal8Bit("打开一个文件"),"","*.txt");
    if(fname != NULL)
    {
        QFile bFile(fname);
        bFile.open(QIODevice::WriteOnly|QIODevice::Text);
        int rowCount = tmodel->rowCount();
        int columnCount = tmodel->columnCount();
        for(int i=0;i<rowCount;i++)
            for(int j=0;j<columnCount;j++)
            {
                QByteArray str = tmodel->item(i,j)->text().toUtf8();
                bFile.write(str,str.length());
                bFile.write(" ",1);
            }
        bFile.close();
        QMessageBox::information(this,QString::fromLocal8Bit("提示"),QString::fromLocal8Bit("保存成功"));
    }

}

总结:
关于tableview还有很多用法,例如
添加表头:setHorizontalHeaderItem()
添加数据:append()
清除数据:clear()
等等等等等等等。。。。。。。。。。。。。。
这里记录一下自己的学习,再接再厉

相关标签: 笔记 qt