QT6(48)5.3 QStandardltemModel 和 QTableView 篇二:二维表的模型与视图,继续源代码实现。并补充记录了如何保存修改后的表格模型里的数据到文件里。

(162)插入行按钮的实现

在这里插入图片描述

++

在这里插入图片描述
在这里插入图片描述

(163)插入行按钮

在这里插入图片描述

++效果图如下

在这里插入图片描述

(164)删除行按钮的实现

在这里插入图片描述

++效果图

在这里插入图片描述

(165)左中右对齐按钮

在这里插入图片描述

++

在这里插入图片描述

(166)设置粗体,跟设置对齐很接近

在这里插入图片描述

(167)保存文件的按钮,没有实现,应该是为了降低学习的难度,但老师的标准代码,很值得学习,记录如下

在这里插入图片描述
在这里插入图片描述

++给出代码版

//保存为文件,虽然没有此按钮,但也要谢谢老师们写的保存文件的的代码范例。
void MainWindow::on_actSave_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( & aFile); //用文本流读取文件

    QStandardItem * aItem;    int i, j;    QString str;

    ui->plainTextEdit->clear();

    for ( i = 0; i < m_model->columnCount(); i++) //获取表头文字
    {   aItem = m_model->horizontalHeaderItem(i); //获取表头的项数据
        str   = str + aItem->text() + "\t\t";     //以TAB见隔开
    }
    aStream << str << "\n";  //文件里需要加入换行符 \n
    ui->plainTextEdit->appendPlainText(str);

    for ( i = 0; i < m_model->rowCount(); i++) //获取数据区文字
    {   str = "";            //最后一列的数据单独处理
        for( j = 0; j < m_model->columnCount() - 1; j++) 
        {   aItem = m_model->item(i, j);
            str   = str + aItem->text() + "\t\t";
        }

        aItem = m_model->item(i, j); //最后一列是逻辑型
        if ( aItem->checkState() == Qt::Checked )   str = str + "1";
        else                                        str = str + "0";

        ui->plainTextEdit->appendPlainText(str);
        aStream << str << "\n";
    } //结尾为什么不关闭文件呢?
}

(168)

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangzhangkeji

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值