QT项目总结记录

一、QT文件读写

1、文件夹的创建

在软件文件夹中创建名为:name的文件夹

 QString cur_dir_str = QDir::currentPath();//获取当前路径
 QDir dir;//定义个文件夹对象
 if (!dir.exists(cur_dir_str+"/name"))//如果某个文件夹路径不存在,创建文件夹路径,会生成新的文件夹
 {
     bool res = dir.mkpath(cur_dir_str+"/name");
 }

2、.txt文件的写

	dir.setCurrent(cur_dir_str+"/jilu");//设定当前路径
    QFile file(cur_dir_str+"/jilu");//定义一个文件对象,传入当前路径
    file.setFileName(QDateTime::currentDateTime().toString("yyyy-MM-dd hhmmss") + ".txt");//命名不能使用:符号,否则创建文件失败。
    bool a = file.open(QIODevice::WriteOnly);//文件不存在会自动创建,有就会打开
    file.write(tmp.toUtf8());//将数据转成utf-8格式的,然后保存到文件中
    file.close();//关闭文件
    dir.setCurrent(cur_dir_str); //设定工作路径

3、.bin文件的写

会删除文件内容

		file.setFileName("main.bin");
        file.open(QIODevice::WriteOnly|QIODevice::Truncate);//打开文件并会清空
        file.write(op.toUtf8());
        file.close();

4、文件的读

两种文件的操作方式相同,直接读操作就行了。

	   QString dirpath = QDir::currentPath();
       QFile file(dirpath);
       file.setFileName("main.bin");
       file.open(QIODevice::ReadOnly);
       QString pass = file.readAll();
       file.close();

5.文件重命名

bool a = file.rename(newname+".txt");//重命名

二、样式表的编写

1. 修改控件颜色

QLabel{color:#ff8865}

2. 背景颜色/背景透明(整个界面的)

QWidget {background-color:white }
QWidget {background:transparent }

3. 按钮添加图片

QPushButton{border-image:url(:/res/log.png)}//适应按钮大小

4. 按钮按下抬起颜色变化/无边框

QPushButton{border:none;color:#ffba1a}
QPushButton:pressed{color:#ff8865}

5. QListWidget样式表

QListWidget::item:selected{background-color:#ff8865}//选中后颜色
QListWidget::item:hover{background-color:#ffba1a}//鼠标放上颜色

三、功能模块

1. 读取文件夹中文件,筛选.txt文件,筛选文件

  1. number->QString类型的转换
  2. QListWidget显示项目
	QDir dir;
    //获取文件夹下的文件名称,筛选.txt文件。
    QStringList baseNames;
    foreach (QFileInfo info, dir.entryList(QStringList()<<"*.txt", QDir::NoDotAndDotDot | QDir::Files))
    {
        baseNames.append(info.baseName());
    }
    ui->zongshulabel->setText(QString::number(baseNames.size()));
    ui->listWidget->addItems(baseNames);
    ui->curshulabel->setText(QString::number(ui->listWidget->currentRow()+1));
    ui->listWidget->setCurrentRow(-1);//初始化页面为-1,防止误删。

对所需要文件进行筛选

foreach (QFileInfo info, dir.entryList(QStringList() << "*.txt", QDir::NoDotAndDotDot | QDir::Files))
    {
    	//on_lineEdit_textChanged(const QString &arg1)
        if(info.baseName().contains(arg1))//名字中包含arg1->QString的
            baseNames.append(info.baseName());
    }

2. 实时显示电脑时间

	QDateTime UTC(QDateTime::currentDateTimeUtc());
    QDateTime local(UTC.toLocalTime());
    ui->ctimelable->setText(local.toString("yyyy-MM-dd hh:mm:ss"));

3. FileDialog对象界面的使用,弹出当前大小的框

   NewFileDialog *filedialog = new NewFileDialog(this);//这个类和头文件有关
   filedialog->resize(this->size());
   filedialog->show();
   filedialog->setModal(true);
   filedialog->exec();
   QString tmp = filedialog->getTextEdit();//一个方法
   delete filedialog;

4. 方法的定义与调用

  1. 在类里面定义公开方法,并完善方法内容
  2. 在当前头文件中,定义类的头文件,并+class 类
  3. 定义一个对象,通过对象调用方法
  4. 用完释放

5. ListWidget的方法

  1. 添加项目—— addItem
  2. 删除项目——takeItem
  3. 向前插入项目 ——insertItem

6. QMessageBox的使用

	    QMessageBox *messagebox = new QMessageBox;
        messagebox->setWindowTitle("提示");
        messagebox->setText("是否确认删除?");
        messagebox->setInformativeText(name);
        QAbstractButton *querenbt = messagebox->addButton("确认",QMessageBox::ButtonRole(0));
        QAbstractButton *quxiao = messagebox->addButton("取消",QMessageBox::ButtonRole(1));
        messagebox->show();
        messagebox->exec();//阻塞
        if(messagebox->clickedButton() == querenbt)//点击了确认按钮
        {
            file.setFileName(name + ".txt");
            file.remove();
            showlist();
        }
        if(messagebox->clickedButton() == quxiao)
        {
            delete messagebox;
        }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
2022年11月4日-2022年11月14日购买当前课程赠送课程学习地址如下:https://edu.csdn.net/course/detail/32434https://edu.csdn.net/course/detail/35658https://edu.csdn.net/course/detail/30223https://edu.csdn.net/course/detail/32408https://edu.csdn.net/course/detail/32429注:因赠送课程不会出现在已订阅课程列表中,以下课程学习地址一定要收藏保存。#课程服务 在线答疑:本课程设有专门的讨论留言区,学习中遇到任何问题,直接给老师留言即可,老师都会及时进行回复。远程协助:如果遇到复杂问题,老师还可进行远程协助,这个一般可不是一两百元的课程就能享受到的。源码分享:为了让大家更好的进行项目实战,老师还将课程中涉及到的所有源码分享给学员,按照视频中的提示进行下载即可。在CSDN分享C++ Qt开发知识已经有6年了,感谢众多博友对我的支持,了解到很多人对Qt的使用还是有些困扰,例如Qt环境搭建,Qt布局的使用,如何使用Qt编写复杂的界面,如何自定义非标控件,Qt如何和Web交互,Qt和后台接口如何交互等;经过这几年的整理,我决定出这套《Qt高级开发视频教程》,带领大家学习Qt高级开发知识,学习如何使用Qt开发企业级别的项目;通过本课程的学习,大家将会达到企业招聘的中高级要求。为了照顾零基础学员,本课程第一章会介绍Qt环境搭建、QtCreator / VS2019的基本使用方法,Qt整体架构、Qt信号机制,Qt内存管理等知识。即使没有Qt开发的学习经验,也能跟着课程顺利学习。课程核心知识点地图如下: 课程每章核心知识点介绍如下: 第一章:介绍Qt环境搭建、QtCreator / VS2019的基本使用方法,Qt整体架构、Qt信号机制,Qt内存管理等知识。第二章:了解到很多学员对于Qt界面布局很不熟悉,将会详细介绍Qt设计器布局,以及如何C++代码手写布局,从常见的企业级项目入手,带领大家学会各种布局的实现,例如WPS、腾讯会议、优酷、迅雷等界面的实现;界面布局会了,这是企业项目开发的第一步,还有更重要的无边框窗口,如何设计一个合理的无边框窗口很重要,第三/四章:详细介绍如何实现一个无边框窗口,如何自定义标题栏,如何实现拖拽拉伸;第四章将会介绍如何自定义非标控件,优化Qt界面。第五章:介绍Qt web混合编程,一个商用项目,必然会涉及到web交互,这也是很多Qt开发者的弱项,这一章讲详细介绍C++ Qt web混合开发。第六章:既然是做企业级项目,必然需要和后台交互,http编程也是必要的,将详细介绍http编程,用户注册,登录,后台接口请求等知识;通过第五、六章的学习,将会是你的Qt开发技术更上一层楼。第七章:介绍Qt并发编程,耗时任务处理,进程调用等知识。第八、九章:讲解 Qt 比较重要的知识,图形视图结构,以及MVD模式;通过这两章的学习,大家会对图形视图有更好的了解。第十章:本章是独立章节,主要介绍Qt中一些特殊技巧,项目编译,dpi适配、多语言等知识。第十一章:是我们的企业级项目实战:实现一个视频会议客户端,本项目可以进行多人视频通话,直播,桌面分享等功能,本项目我会从零开始,进行项目搭建,功能调试,bug fixed, 带领大家做一个企业级项目。希望通过本课程的学习,大家的C++ Qt开发技术能有质的飞越,能找到自己心仪的工作。课程中如果讲的不对的地方,请大家指出,我及时修正,我也只是一个普通开发者,也不是所有的技术都会,尽我所能,把我所会的教给大家,让我们一起为Qt的发展,尽一份绵薄之力。 下面是本课程一些项目的截图: 1 可以滑动的设置界面         2 所有图形的绘制       3 视频播放器          4 高仿youku界面         5 视频会议         相信通过本课程的学习,大家有能力实现绝大部分客户端项目,从此用C++ Qt再也不会有难写的界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小猛笔记

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值