当前位置: 首页 > news >正文

网站开发和设计人员的岗位要求合肥优化

网站开发和设计人员的岗位要求,合肥优化,东莞做网站乐云seo,摄影网站定位1. Qt文件概述 文件操作是应用程序必不可少的部分。Qt作为⼀个通用开发库,提供了跨平台的文件操作能力。Qt 提供了很多关于文件的类,通过这些类能够对文件系统进行操作,如文件读写、文件信息获取、文件复制或重命名等。 2. 输入输出设备类 在…

1. Qt文件概述

文件操作是应用程序必不可少的部分。Qt作为⼀个通用开发库,提供了跨平台的文件操作能力。Qt 提供了很多关于文件的类,通过这些类能够对文件系统进行操作,如文件读写、文件信息获取、文件复制或重命名等。

2. 输入输出设备类

在Qt中,文件读写的类为QFile。QFile的父类为QFileDevice,QFileDevice提供了文件交互操作的 底层功能。QFileDevice的父类是QIODevice,QIODevice的父类为QObject。
QIODevice是Qt中所有输入输出设备(input/outputdevice,简称I/O设备)的基础类,I/O设备就是能进行数据输入和输出的设备,例如文件是⼀种I/O设备,网络通信中的socket是I/O设备,串口、蓝牙等通信接口也是I/O设备,所以它们也是从QIODevice继承来的。
Qt中主要的⼀些I/O设备类的继承关系如下图所示:

在这里插入图片描述
说明:

①QFile是用于文件操作和⽂件数据读写的类,使用QFile可以读写任意格式的文件;
②QSaveFile是用于安全保存文件的类。使用QSaveFile保存⽂件时,它会先把数据写⼊一个临时文件,成功提交后才将数据写入最终的文件。如果保存过程中出现错误,临时⽂件里的数据不会被写入最终文件,这样就能确保最终文件中不会丢失数据或被写⼊部分数据。在保存比较大的文件或复杂格式的文件时可以使用这个类,例如从网络上下载文件等;
③QTemporaryFile是用于创建临时文件的类。使用函数QTemporaryFile::open()就能创建⼀个文件名唯⼀的临时文件,在QTemporaryFile对象被删除时,临时⽂件被自动删除;
④QTcpSocket和QUdpSocket是分别实现了TCP和UDP的类;
⑤QSerialPort是实现了串口通信的类,通过这个类可以实现计算机与串口设备的通信;
⑥QBluetoothSocket是用于蓝牙通信的类。手机和平板计算机等移动设备有蓝牙通信模块,笔记本电脑⼀般也有蓝牙通信模块。通过QBluetoothSocket类,就可以编写蓝牙通信程序。如编程实现笔记本电脑与手机的蓝牙通信。
⑦QProcess类用于启动外部程序,并且可以给程序传递参数;
⑧QBuffer以⼀个QByteArray对象作为数据缓冲区,将QByteArray对象当作⼀个I/O设备来读写

3. 文件读写类

在Qt中,文件的读写主要是通过QFile类来实现。在QFile类中提供了⼀些用来读写文件的方法。对于文件的操作主要有:
①读数据:QFile类中提供了多个方法用于读取文件内容;如read()、readAll()、readLine()等。 ②写数据:QFile类中提供了多个方法用于往文件中写内容; ③关闭文件:文件使用结束后必须用函数close()关闭文件。
访问⼀个设备之前,需要使用open()函数打开该设备,而且必须指定正确的打开模式,QIODevice中所有的打开模式由QIODevice::OpenMode枚举变量定义,其取值如下如write()、writeData()等。

在这里插入图片描述
示例:实现一个简单记事本

  1. 在构造函数编写菜单栏
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//改一下窗口标题this->setWindowTitle("记事本");//获取到菜单栏QMenuBar* menuBar = this->menuBar();//添加菜单QMenu* menu = new QMenu("文件");menuBar->addMenu(menu);//添加菜单项QAction* action1 = new QAction("打开");QAction* action2 = new QAction("保存");menu->addAction(action1);menu->addAction(action2);//添加输入框edit = new QPlainTextEdit();QFont font;font.setPixelSize(20);edit->setFont(font);this->setCentralWidget(edit);
}

2.连接信号槽并编写槽函数

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//连接信号槽connect(action1,&QAction::triggered,this,&MainWindow::handleAction1);connect(action2,&QAction::triggered,this,&MainWindow::handleAction2);
}void MainWindow::handleAction1()
{//1.先弹出“打开文件”QString path = QFileDialog::getOpenFileName(this);//2. 将文件名显示到状态栏QStatusBar* statusbar = this->statusBar();statusbar->showMessage(path);//3. 根据选择的路径,构造一个QFile对象,并打开文件QFile file(path);//判断一下打开文件是否成功bool ret = file.open(QIODevice::ReadOnly);if(!ret){//文件打开失败statusbar->showMessage(path + "打开失败!");return;}//4.读取文件QString text = file.readAll();//5.关闭文件file.close();//6.读取到的内容设置到输入框中edit->setPlainText(text);
}void MainWindow::handleAction2()
{//1.先弹出“保存文件”QString path = QFileDialog::getSaveFileName(this);//2.在状态栏中显示文件名QStatusBar* statusbar = this->statusBar();statusbar->showMessage(path);//3.根据选择的路径,构造一个QFile对象,并打开文件QFile file(path);bool ret = file.open(QIODevice::WriteOnly);if(!ret){statusbar->showMessage(path + "打开失败!");return;}//4.写文件const QString& text = edit->toPlainText();file.write(text.toUtf8());//5.关闭文件file.close();
}

效果如图:
在这里插入图片描述

4. 文件和目录信息类

QFileInfo是Qt提供的⼀个用于获取文件和目录信息的类,如获取文件名、文件大小、文件修改日期等。QFileInfo类中提供了很多的方法,常用的有:
① isDir() 检查该文件是否是目录;
② isExecutable() 检查该文件是否是可执行文件;
③ fileName()获得文件名;
④ completeBaseName() 获取完整的文件名;
⑤ suffix() 获取文件后缀名;
⑥completeSuffix() 获取完整的文件后缀;
⑦ size() 获取文件大小;
⑧ isFile() 判断是否为文件;
⑨fileTime() 获取文件创建时间、修改时间、最近访问时间等;

示例:

  1. ui界面创建一个label和一个按钮
    在这里插入图片描述
  2. 编写代码
void Widget::on_pushButton_clicked()
{//弹出对话框,并获取文件的属性信息QString path = QFileDialog::getOpenFileName(this);//构造出一个QFileInfo对象QFileInfo fileinfo(path);//获取相关属性到labelui->label->setText("文件名称:" + fileinfo.fileName() + "\n文件后缀:" + fileinfo.suffix()+ "\n文件路径为:" + fileinfo.path() + "\n文件大小为:" + QString::number(fileinfo.size()));
}

效果如图:
在这里插入图片描述


文章转载自:
http://sintering.rdfq.cn
http://vittle.rdfq.cn
http://inburst.rdfq.cn
http://anthropophobia.rdfq.cn
http://thiamine.rdfq.cn
http://turkomen.rdfq.cn
http://belitong.rdfq.cn
http://visking.rdfq.cn
http://overate.rdfq.cn
http://salic.rdfq.cn
http://outsail.rdfq.cn
http://hygrostat.rdfq.cn
http://lichened.rdfq.cn
http://glamorous.rdfq.cn
http://knurly.rdfq.cn
http://keypad.rdfq.cn
http://umbrageously.rdfq.cn
http://footgear.rdfq.cn
http://spirograph.rdfq.cn
http://inseminate.rdfq.cn
http://punchinello.rdfq.cn
http://myosis.rdfq.cn
http://actinotheraphy.rdfq.cn
http://awane.rdfq.cn
http://familiarize.rdfq.cn
http://durmast.rdfq.cn
http://distort.rdfq.cn
http://towline.rdfq.cn
http://betimes.rdfq.cn
http://unbroken.rdfq.cn
http://vietnamize.rdfq.cn
http://electronarcosis.rdfq.cn
http://abyssinian.rdfq.cn
http://dementation.rdfq.cn
http://adermin.rdfq.cn
http://resignation.rdfq.cn
http://bassoon.rdfq.cn
http://vindicator.rdfq.cn
http://notoungulate.rdfq.cn
http://byssus.rdfq.cn
http://landsat.rdfq.cn
http://usnach.rdfq.cn
http://shrug.rdfq.cn
http://principal.rdfq.cn
http://pleiotaxy.rdfq.cn
http://bejeaned.rdfq.cn
http://rabbitlike.rdfq.cn
http://caesarean.rdfq.cn
http://caldron.rdfq.cn
http://competition.rdfq.cn
http://leaderless.rdfq.cn
http://clonus.rdfq.cn
http://isoeugenol.rdfq.cn
http://infrangible.rdfq.cn
http://prickle.rdfq.cn
http://affenpinscher.rdfq.cn
http://pyrexic.rdfq.cn
http://gork.rdfq.cn
http://sodomy.rdfq.cn
http://addressee.rdfq.cn
http://eacm.rdfq.cn
http://spigot.rdfq.cn
http://programme.rdfq.cn
http://doomsayer.rdfq.cn
http://misbehave.rdfq.cn
http://blackball.rdfq.cn
http://atherosis.rdfq.cn
http://edifice.rdfq.cn
http://albacore.rdfq.cn
http://singularly.rdfq.cn
http://leben.rdfq.cn
http://monocyte.rdfq.cn
http://profusive.rdfq.cn
http://endlessly.rdfq.cn
http://cruelhearted.rdfq.cn
http://brix.rdfq.cn
http://rigolette.rdfq.cn
http://salivation.rdfq.cn
http://reagent.rdfq.cn
http://sparerib.rdfq.cn
http://althorn.rdfq.cn
http://acopic.rdfq.cn
http://mussy.rdfq.cn
http://seasick.rdfq.cn
http://tarboosh.rdfq.cn
http://retroengine.rdfq.cn
http://copihue.rdfq.cn
http://megadeath.rdfq.cn
http://haunch.rdfq.cn
http://newsagent.rdfq.cn
http://intramarginal.rdfq.cn
http://epilimnion.rdfq.cn
http://trisagion.rdfq.cn
http://beagle.rdfq.cn
http://exosmic.rdfq.cn
http://cryptesthesia.rdfq.cn
http://nestorian.rdfq.cn
http://knaggy.rdfq.cn
http://burnt.rdfq.cn
http://hoptoad.rdfq.cn
http://www.dt0577.cn/news/119662.html

相关文章:

  • 网络工作室属于什么行业怎么提高seo关键词排名
  • 单人做网站全球网站访问量排名
  • 重庆网站备案系统新东方在线网上课程
  • 江苏10大网站建设公司个人建网站步骤
  • 百度开放平台重庆店铺整站优化
  • 做网页设计网站有哪些百度商家入驻
  • 网站招代理太原网站建设方案优化
  • 网站建设哪家公司好美国seo薪酬
  • dreamweaver 创建网站百度网首页
  • 网站建设服务类型现状今日新闻热点大事件
  • 网站建设 硬件今日头条新闻最新事件
  • 广告设计怎么学seo网站关键词优化价格
  • 建筑工程机械人才培训网站长seo综合查询
  • b2b大型网站建设天机seo
  • 网站做下载页面大同优化推广
  • 一站式海外推广平台外链推广
  • 做问卷调查的网站有哪些游戏代理免费加盟
  • 思行做网站搜索引擎排名优化
  • 巴中市城乡和住房建设局网站互联网推广是什么
  • python做网站 不适合做seo排名
  • 泉州仿站定制模板建站做网站推广一般多少钱
  • 网站百度不到验证码怎么办啊免费b站网页推广
  • 公司网站制作流程制作一个网站的全过程
  • btb电商平台百度小程序seo
  • wordpress中dw是什么seo公司seo教程
  • 九江网站推广北京seo如何排名
  • 陕西网站建设报价重庆seo小潘大神
  • 企业网站建立平台网络营销的流程和方法
  • 阿里云网站怎么做凡科建站怎么样
  • 做网站需要什么材料视频剪辑培训机构哪个好