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

企业网站手机版模板免费下载网络营销步骤

企业网站手机版模板免费下载,网络营销步骤,深圳市做网站知名公司,百度推广免费建站QFile 类 构造函数 QFile() 无参构造 仅仅构建一个QFile 对象,不设定文件名 QFile(文件名) 构建一个QFile对象的同时,设定文件名 但是注意,仅仅设定文件名,并不会打开该文件 设定文件名 QFile file file.setFileName…

QFile 类

构造函数

QFile() 无参构造
    仅仅构建一个QFile 对象,不设定文件名

QFile(文件名)
    构建一个QFile对象的同时,设定文件名
    但是注意,仅仅设定文件名,并不会打开该文件

设定文件名

QFile file
file.setFileName(文件名)
并不会打开

打开文件

file.open(打开模式)

文件写

qint64 write(const char *data, qint64 maxSize)

    file.write(数据,数据长度)//将data,最多maxSize个字节,写入file代表的文件中 

qint64 write(const char *data)

    file.write(数据)//将data,到结束符为止,写入file代表的文件中 

 qint64 write(const QByteArray &byteArray)

    QByteArray本质是c语言的字符数组,做一段内存来管理

我们的数据一般是一个 QString 对象
    so要将一个 QString 对象转换成 QByteArray 对象:
    
    QString  str = "hello"//QString,有toLocal8Bit() :将QString转换成 QByteArray
    QByteArray   qarr = str.toLocal8Bit();

class Widget : public QWidget
{
public:Widget(QWidget *parent = nullptr);~Widget();void save_data(const QString &filename,const QString &data);private:Ui::Widget *ui;QFile file;
};Widget::~Widget()
{QString name=ui->lineEdit->text();save_data("D:/name.text",name);delete ui;
}void Widget::save_data(const QString &filename, const QString &data)
{file.setFileName(filename);file.open(QFile::WriteOnly);file.write(data.toLocal8Bit());file.close();
}

文件读 

qint64 read(char *data, qint64 maxSize)

    char buf[64] = {0}
    file.read(buf,64)//从file文件中读取最多64个字节的数据,并且将读取到的数据写入buf中
    返回读取到的数据的字节数

QByteArray read(qint64 maxSize)

    QByteArray   qarr = file.read(64)// 从file文件中,读取最多64个字节的数据,并且将读取到的数据,构建成一个QByteArray对象后返回

将  QByteArray 数据,转换成 QString 数据
        1:在QByteArray 寻找,返回值是 QString,函数名是toXXXX,形参没有的函数
        2:在QString的构造函数,寻找参数为 QByteArray 的构造函数
            不支持中文
        3:在QString的静态方法,寻找返回值为 QString,参数是 QByteArray的函数
           找到 fromLocal8Bit(),支持中文

QByteArray    readAll()

    QByteArray arr = file.readAll()// 读取文件中的全部数据
//将读取到的数据,构建成 QByteArray 后返回

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QString name=load_data("D:name.text");ui->lineEdit->setText(name);
}QString Widget::load_data(const QString &filename)
{file.setFileName(filename);file.open(QFile::ReadOnly);QByteArray barr=file.readAll();QString str=QString::fromLocal8Bit(barr);file.close();return str;
}

作业

1:在注册登录的练习里面,追加一个QListWidget 项目列表
要求:点击注册之后,将账号显示到 listWidget上面去
以及,在listWidget中双击某个账号的时候,将该账号删除 

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QFile>
#include <QListWidgetItem>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void save_data(const QString &filename, const QString &data);QString load_data(const QString &filename);private slots:void on_lineEdit_textChanged(const QString &arg1);void on_lineEdit_2_textChanged(const QString &arg1);void on_pushButton_3_pressed();void on_pushButton_3_released();void on_checkBox_stateChanged(int arg1);void on_pushButton_clicked();  // 注册按钮点击事件void on_listWidget_doubleClicked(const QModelIndex &index);  // 双击删除账号void on_listWidget_itemDoubleClicked(QListWidgetItem *item);private:Ui::Widget *ui;QFile file;
};#endif // WIDGET_H#include "widget.h"
#include "ui_widget.h"
#include <QMessageBox>
#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 加载用户名QString name = load_data("D:/name.text");ui->lineEdit->setText(name);// 加载复选框状态QString ischeck = load_data("D:/ischecked.text");if (ischeck == "1") ui->checkBox->setChecked(true);// 如果复选框被选中,加载密码if (ui->checkBox->isChecked()) {QString pswd = load_data("D:/pswd.text");ui->lineEdit_2->setText(pswd);}// 初始化按钮状态QString nameText = ui->lineEdit->text();QString pswdText = ui->lineEdit_2->text();if (nameText.isEmpty() || pswdText.isEmpty()) {ui->pushButton->setEnabled(false);ui->pushButton_2->setEnabled(false);}
}Widget::~Widget()
{// 保存用户名和密码QString name = ui->lineEdit->text();QString pswd = ui->lineEdit_2->text();save_data("D:/name.text", name);save_data("D:/pswd.text", pswd);delete ui;
}void Widget::save_data(const QString &filename, const QString &data)
{file.setFileName(filename);if (!file.open(QFile::WriteOnly)) {QMessageBox::warning(this, "Error", "Failed to save file: " + filename);return;}file.write(data.toLocal8Bit());file.close();
}QString Widget::load_data(const QString &filename)
{file.setFileName(filename);if (!file.open(QFile::ReadOnly)) {return QString();  // 文件不存在时返回空字符串}QByteArray barr = file.readAll();QString str = QString::fromLocal8Bit(barr);file.close();return str;
}void Widget::on_lineEdit_textChanged(const QString &arg1)
{QString name = ui->lineEdit->text();QString pswd = ui->lineEdit_2->text();if (name.isEmpty() || pswd.isEmpty()) {ui->pushButton->setEnabled(false);ui->pushButton_2->setEnabled(false);} else {ui->pushButton->setEnabled(true);ui->pushButton_2->setEnabled(true);}
}void Widget::on_lineEdit_2_textChanged(const QString &arg1)
{QString name = ui->lineEdit->text();QString pswd = ui->lineEdit_2->text();if (name.isEmpty() || pswd.isEmpty()) {ui->pushButton->setEnabled(false);ui->pushButton_2->setEnabled(false);} else {ui->pushButton->setEnabled(true);ui->pushButton_2->setEnabled(true);}
}void Widget::on_pushButton_3_pressed()
{ui->lineEdit_2->setEchoMode(QLineEdit::Normal);
}void Widget::on_pushButton_3_released()
{ui->lineEdit_2->setEchoMode(QLineEdit::Password);
}void Widget::on_checkBox_stateChanged(int arg1)
{save_data("D:/ischecked.text", arg1 == Qt::Checked ? "1" : "0");
}void Widget::on_pushButton_clicked()//注册
{// 获取用户名QString name = ui->lineEdit->text();// 将用户名添加到 QListWidgetif (!name.isEmpty()) {ui->listWidget->addItem(name);QMessageBox::information(this, "注册成功", "账号已添加到列表!");} else {QMessageBox::warning(this, "注册失败", "用户名不能为空!");}
}void Widget::on_listWidget_doubleClicked(const QModelIndex &index)
{// 获取选中的项QListWidgetItem *item = ui->listWidget->item(index.row());if (item) {// 删除选中的项delete item;QMessageBox::information(this, "删除成功", "账号已从列表中删除!");}
}void Widget::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{}#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

 


文章转载自:
http://labelled.bbtn.cn
http://aglet.bbtn.cn
http://curliness.bbtn.cn
http://passementerie.bbtn.cn
http://exhumate.bbtn.cn
http://afterimage.bbtn.cn
http://gravy.bbtn.cn
http://imperium.bbtn.cn
http://sermonology.bbtn.cn
http://colonialism.bbtn.cn
http://biaural.bbtn.cn
http://cpe.bbtn.cn
http://mesodont.bbtn.cn
http://sook.bbtn.cn
http://devote.bbtn.cn
http://decimalise.bbtn.cn
http://polytonalism.bbtn.cn
http://crabgrass.bbtn.cn
http://thermantidote.bbtn.cn
http://ruddy.bbtn.cn
http://devisor.bbtn.cn
http://bethanechol.bbtn.cn
http://translation.bbtn.cn
http://gynaecoid.bbtn.cn
http://primo.bbtn.cn
http://reentry.bbtn.cn
http://triangulation.bbtn.cn
http://galvanocauterization.bbtn.cn
http://neap.bbtn.cn
http://nonparametric.bbtn.cn
http://recriminatory.bbtn.cn
http://overboot.bbtn.cn
http://pollute.bbtn.cn
http://mechanisation.bbtn.cn
http://vigor.bbtn.cn
http://subacetate.bbtn.cn
http://palsgravine.bbtn.cn
http://koph.bbtn.cn
http://inwit.bbtn.cn
http://cartulary.bbtn.cn
http://disproportion.bbtn.cn
http://amphimixis.bbtn.cn
http://unforced.bbtn.cn
http://perfusion.bbtn.cn
http://aphesis.bbtn.cn
http://dengue.bbtn.cn
http://ericoid.bbtn.cn
http://riband.bbtn.cn
http://telegraphic.bbtn.cn
http://frobnitz.bbtn.cn
http://platitudinal.bbtn.cn
http://achelous.bbtn.cn
http://anguine.bbtn.cn
http://breaker.bbtn.cn
http://furlough.bbtn.cn
http://jowett.bbtn.cn
http://standoffish.bbtn.cn
http://feat.bbtn.cn
http://tenderometer.bbtn.cn
http://pronounceable.bbtn.cn
http://sharable.bbtn.cn
http://uncrumple.bbtn.cn
http://haddock.bbtn.cn
http://noncombatant.bbtn.cn
http://undrew.bbtn.cn
http://protoderm.bbtn.cn
http://soliloquize.bbtn.cn
http://pertinence.bbtn.cn
http://stylolite.bbtn.cn
http://extralunar.bbtn.cn
http://geordie.bbtn.cn
http://koel.bbtn.cn
http://scurvily.bbtn.cn
http://babblingly.bbtn.cn
http://tackey.bbtn.cn
http://incinderjell.bbtn.cn
http://rhematic.bbtn.cn
http://pentahydrate.bbtn.cn
http://justifiable.bbtn.cn
http://premalignant.bbtn.cn
http://detrusion.bbtn.cn
http://engirdle.bbtn.cn
http://autocatalysis.bbtn.cn
http://netiquette.bbtn.cn
http://odeon.bbtn.cn
http://alkyd.bbtn.cn
http://vitriform.bbtn.cn
http://stereographic.bbtn.cn
http://cyanate.bbtn.cn
http://troopial.bbtn.cn
http://swimmer.bbtn.cn
http://mothproof.bbtn.cn
http://ration.bbtn.cn
http://dobeying.bbtn.cn
http://amorphic.bbtn.cn
http://gilberta.bbtn.cn
http://donar.bbtn.cn
http://superplastic.bbtn.cn
http://ceremony.bbtn.cn
http://cryptosystem.bbtn.cn
http://www.15wanjia.com/news/65228.html

相关文章:

  • 贵州省住房和城乡建设厅网站-首页百度投放广告平台
  • asp做的网站频繁报错 参数错误百度网
  • 在线建站网络防御中心
  • 买完域名后如何建设网站b2b电子商务网站都有哪些
  • 泰安网络公司排行榜抖音seo软件
  • 怎么做快法务类似网站网页设计与制作考试试题及答案
  • 打开网站乱码怎么做站长统计在线观看
  • 专业做房地产网站建设网络营销方法
  • dw制作asp网站模板搜索引擎优化介绍
  • 佛山定制网站建设seo网址
  • 北京建设主管部门官方网站网站关键词优化怎么弄
  • fifa18做sbc的网站免费网站免费
  • 有什么设计网站cctv 13新闻频道
  • wordpress 主题名字深圳整站seo
  • 网站需要的栏目和内容推广公司app主要做什么
  • 深圳做网站推广设计案例网
  • wordpress有没有ssrpanelseo快速优化软件
  • 张家界做网站找哪家好重庆森林电影高清在线观看
  • 网站设计与制作报价淘宝数据分析
  • 展示型网站制作广州网络运营课程培训班
  • 装修设计案例网站网络营销外包推广
  • asp企业网站设计百度人工服务在线咨询
  • 美国做电商网站甘肃搜索引擎网络优化
  • 网站的设计思路范文百度推广首页登录
  • 访问中国建设银行官方网站关键少数
  • angular做的网站大全seo是什么的
  • 保存的密码变成乱码站外seo推广
  • 南宁百度网站公司电话微信推广方式有哪些
  • 做网站建设有哪些公司好优化算法
  • 网站建设搭建是什么意思对网站和网页的认识