lv20 QT文件编程6

1 文件普通读写

2 流式操作

QFile file("in.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
          return;

QTextStream in(&file);
while (!in.atEnd()) {
          QString line = in.readLine();
          process_line(line);
      }

示例

widegt.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTextEdit>
#include <QLineEdit>
#include <QPushButton>
#include <QFileDialog>
#include <QTextStream>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();
public slots:
    void showfile()
    {
        QString filename = QFileDialog::getOpenFileName();
        le->setText(filename);
#if 0
        QFile file(filename);
        if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
             return;

        while (!file.atEnd()) {
             QByteArray line = file.readLine();
            // process_line(line);
             te->append(line);
        }
#endif
        QFile file(filename);
              if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
                  return;

              QTextStream in(&file);
              while (!in.atEnd()) {
                  QString line = in.readLine();
                //  process_line(line);
                  te->append(line);
              }
    }

private:
    QTextEdit *te;
    QLineEdit *le;
    QPushButton *pb;
};

#endif // WIDGET_H

wigdet.cpp

#include "widget.h"
#include <QVBoxLayout>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    te = new QTextEdit;
    te->setMinimumSize(640, 480);
    le = new QLineEdit;
    pb = new QPushButton("showtxt");

    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(te);
    vbox->addWidget(le);
    vbox->addWidget(pb);
    setLayout(vbox);

    connect(pb, SIGNAL(clicked(bool)), this, SLOT(showfile()));
    
}

Widget::~Widget()
{

}

 

3 文件属性

QFileInfo  info1("/home/bob/bin/untabify");
info1.isSymLink(); // returns true 
info1.absoluteFilePath(); // returns "/home/bob/bin/untabify" info1.size(); // returns 56201 
info1.symLinkTarget(); // returns "/opt/pretty++/bin/untabify" 

 文件夹遍历

QDir dir;
QFileInfoList list = dir.entryInfoList();

for (int i = 0; i < list.size(); ++i) {
          QFileInfo fileInfo = list.at(i);
}

main.cpp 

#include <QCoreApplication>
#include <QDir>
#include <QFileInfo>
#include <iostream>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QDir dir;

    QFileInfoList list = dir.entryInfoList();
    std::cout << "     Bytes Filename" << std::endl;
    for (int i = 0; i < list.size(); ++i) {

         QFileInfo fileInfo = list.at(i);
         std::cout << fileInfo.size()<< "\t"<<fileInfo.fileName().toStdString().c_str();

         std::cout << std::endl;
    }

    return a.exec();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/422642.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文掌握大模型提示词技巧:从战略到战术

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

学习网络编程No.11【传输层协议之UDP】

引言&#xff1a; 北京时间&#xff1a;2023/11/20/9:17&#xff0c;昨天成功更文&#xff0c;上周实现了更文两篇&#xff0c;所以这周再接再厉。当然做题任在继续&#xff0c;而目前做题给我的感觉以套路和技巧偏多&#xff0c;还是那句话很多东西不经历你就是不懂&#xff…

Python你知道多少?教你玩转Python变量与常量!

变量与常量 变量&#xff1a;在程序运行过程中&#xff0c;值会发生变化的量 常量&#xff1a;在程序运行过程中&#xff0c;值不会发生变化的量 无论是变量还是常量&#xff0c;在创建时都会在内存中开辟一块空间&#xff0c;用于保存它的值。 这里有一点需要注意的是&…

Nginx 隐藏版本信息和logo

1.隐藏版本信息 http {### 隐藏版本号 server_tokens off; } 2.隐藏图标 2.1 cd nginx 安装的路径 cd/XXXX/nginx-1.2.0 2.2 编辑文件 vim src/core/nginx.h 修改define nginx_ver 中的内容 vim src/http/ngx_http_special_response.c 修改 u_char ngx_http_error_tail[]…

yolo目标检测实战

该博客主要介绍了&#xff1a; 1. 如何制作yolo目标检测数据集 2.如何在自己的数据集上训练yolo 3.训练好后的模型如何进行推理 1.数据标注 关于数据如何标注&#xff0c;请查看这篇博文 2.数据集目录结构 重点关注红框内部的结构 images: 图片目录 images/train: 训练集…

【论文笔记】CARFF: Conditional Auto-encoded Radiance Field for 3D Scene Forecasting

原文链接&#xff1a;https://browse.arxiv.org/abs/2401.18075 1. 引言 人类可以从部分视觉上下文中想象不能看到的部分&#xff08;物体的存在与位置&#xff0c;以及场景与物体的形状、颜色、纹理等&#xff09;&#xff0c;这对安全决策至关重要。而自动驾驶系统的传统方…

Linux 开发工具vim、gcc/g++、makefile

目录 Linux编辑器-vim 1. 基本概念 2. 基本操作 3. 正常模式命令集 4. 末行模式命令集 5. 其他操作 6. 简单vim配置 Linux编译器-gcc/g 1、基本概念 2、程序翻译的过程 3. gcc如何完成程序翻译 4、动静态库 Linux项目自动化构建工具-make/Makefile 1、背景 2、…

redis05 sprngboot整合redis

redis的Java客户端 整合步骤 添加redis的pom依赖 <!-- 引入redis依赖 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency><!-- 引入redis连…

Linux 常用的文本处理工具

目录 cat 连接 more/less 分页 tail 实时 cat 连接 将一个或多个文件的内容连接并显示在终端上&#xff0c;创建新文件或将内容追加到已有文件。 不会分屏显示文件内容&#xff0c;适用于较小的文件。 cat 文件1.txt 文件2.txt # 连接并显示文件1.txt和文件2.txt的内容 …

【k8s管理--集群日志管理elk】

1、ELKF日志部署框架 使用docker部署的k8s集群所有的容器日志统一都在目录&#xff1a;/var/log/containers/1、filebeat是一个轻量级的日志手机工具&#xff0c;主要功能是收集日志2、logstash通可以收集日志&#xff0c;也可以进行数据清洗&#xff0c;但是一般不用logstash来…

Linux笔记--GCC

GCC编译器是Linux系统下最常用的CIC编译器&#xff0c;大部分Linux发行版中都会默认安装。GCC编译器通常以gcc指令的形式在终端中使用。 一.gcc指令 1.直接编译 创建a.c文件 #使用gcc对程序进行编译&#xff0c;默认得到可执行文件的文件名为a.out gcc [文件名].c gcc a.c .…

MySQL:一行记录如何

1、表空间文件结构 表空间由段「segment」、区「extent」、页「page」、行「row」组成&#xff0c;InnoDB存储引擎的逻辑存储结构大致如下图&#xff1a; 行 数据库表中的记录都是按「行」进行存放的&#xff0c;每行记录根据不同的行格式&#xff0c;有不同的存储结构。 页…

数据迁移DTS | 云上MySQL 数据库迁移至达梦数据库

引入 云上 MySQL 数据库 —> 向达梦国产化数据库迁移 下载&安装 达梦客户端工具 DM->可参考之前国产化专栏达梦文章 创建模式 在客户端分别依次执行以下命令脚本&#xff08;这里没有通过客户端管理工具去创建达梦数据库的模式&#xff0c;当然也可以通过图形化界…

【Logback】Logback 的配置文件

目录 一、初始化配置文件 1、logback 配置文件的初始化顺序 2、logback 内部状态信息 二、配置文件的结构 1、logger 元素 2、root 元素 3、appender 元素 三、配置文件中的变量引用 1、如何定义一个变量 2、为变量设置默认值 3、变量的嵌套 In symbols one observe…

【计算机网络_应用层】TCP应用与相关API守护进程

需要云服务器等云产品来学习Linux的同学可以移步/–>腾讯云<–/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;优惠多多。&#xff08;联系我有折扣哦&#xff09; 文章目录 1. 相关使用接口2. 代码实现2.1 日志组件2.2 Server端2.3 Client端2.3 bug解决 3. 守…

【MySQL】数据库的操作

【MySQL】数据库的操作 目录 【MySQL】数据库的操作创建数据库数据库的编码集和校验集查看系统默认字符集以及校验规则查看数据库支持的字符集查看数据库支持的字符集校验规则校验规则对数据库的影响数据库的删除 数据库的备份和恢复备份还原不备份整个数据库&#xff0c;而是备…

Qt 简约美观的加载动画 小沙漏风格 第六季

这次和大家分享一个沙漏风格的加载动画 效果如下: 这是本系列的第六季了, 本次内容的关键在于cubicTo函数的使用, 在这里分享一个非常好用的网站https://www.desmos.com/calculator/cahqdxeshd 在这上面可以手动拖动贝塞尔曲线的控制点, 并且显示了起终点和两个控制点的精确坐…

深入剖析k8s-Pod篇

为什么需要Pod&#xff1f; 进程是以进程组的方式组织在一起。受限制容器的“单进程模型”&#xff0c; 成组调用没有被妥善处理&#xff08;资源调用有限&#xff09;&#xff0c;使用资源囤积则导致复杂度上升。 在k8s项目中&#xff0c;Pod的实现需要使用一个中间容器——…

兰州理工大学数据科学与计算机科学20级学生实训项目正式开班

2月26日星期一&#xff0c;兰州理工大学数据科学与计算机科学20级学生实训项目正式开班。计通学院计算机科学与大数据专业相关领导及老师、泰迪智能科技华北区域负责人曹玉红参与本次开班仪式。 兰州理工大学计算机与通信学院&#xff08;软件学院&#xff09;肇始于1984年原甘…

Unity 游戏设计模式:单例模式

本文由 简悦 SimpRead 转码&#xff0c; 原文地址 mp.weixin.qq.com 单例模式 在 C# 游戏设计中&#xff0c;单例模式是一种常见的设计模式&#xff0c;它的主要目的是确保一个类只有一个实例&#xff0c;并提供一个全局访问点。单例模式在游戏开发中具有以下几个作用&#xf…