国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

企業(yè)網(wǎng)站手機版模板免費下載上海關(guān)鍵詞優(yōu)化外包

企業(yè)網(wǎng)站手機版模板免費下載,上海關(guān)鍵詞優(yōu)化外包,工業(yè)設(shè)計網(wǎng)站知乎,沒學(xué)歷可以學(xué)什么技術(shù)QFile 類 構(gòu)造函數(shù) QFile() 無參構(gòu)造 僅僅構(gòu)建一個QFile 對象,不設(shè)定文件名 QFile(文件名) 構(gòu)建一個QFile對象的同時,設(shè)定文件名 但是注意,僅僅設(shè)定文件名,并不會打開該文件 設(shè)定文件名 QFile file file.setFileName…

QFile 類

構(gòu)造函數(shù)

QFile() 無參構(gòu)造
? ? 僅僅構(gòu)建一個QFile 對象,不設(shè)定文件名

QFile(文件名)
? ? 構(gòu)建一個QFile對象的同時,設(shè)定文件名
? ? 但是注意,僅僅設(shè)定文件名,并不會打開該文件

設(shè)定文件名

QFile file
file.setFileName(文件名)
并不會打開

打開文件

file.open(打開模式)

文件寫

qint64 write(const char *data, qint64 maxSize)

? ? file.write(數(shù)據(jù),數(shù)據(jù)長度)//將data,最多maxSize個字節(jié),寫入file代表的文件中?

qint64 write(const char *data)

? ? file.write(數(shù)據(jù))//將data,到結(jié)束符為止,寫入file代表的文件中?

?qint64 write(const QByteArray &byteArray)

? ? QByteArray本質(zhì)是c語言的字符數(shù)組,做一段內(nèi)存來管理

我們的數(shù)據(jù)一般是一個 QString 對象
? ? so要將一個 QString 對象轉(zhuǎn)換成 QByteArray 對象:
? ??
? ??QString? str = "hello"//QString,有toLocal8Bit() :將QString轉(zhuǎn)換成 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個字節(jié)的數(shù)據(jù),并且將讀取到的數(shù)據(jù)寫入buf中
? ? 返回讀取到的數(shù)據(jù)的字節(jié)數(shù)

QByteArray read(qint64 maxSize)

? ? QByteArray? ?qarr = file.read(64)//?從file文件中,讀取最多64個字節(jié)的數(shù)據(jù),并且將讀取到的數(shù)據(jù),構(gòu)建成一個QByteArray對象后返回

將? QByteArray 數(shù)據(jù),轉(zhuǎn)換成 QString 數(shù)據(jù)
? ? ? ? 1:在QByteArray 尋找,返回值是 QString,函數(shù)名是toXXXX,形參沒有的函數(shù)
? ? ? ? 2:在QString的構(gòu)造函數(shù),尋找參數(shù)為 QByteArray 的構(gòu)造函數(shù)
? ? ? ? ? ? 不支持中文
? ? ? ? 3:在QString的靜態(tài)方法,尋找返回值為 QString,參數(shù)是 QByteArray的函數(shù)
? ? ? ? ? ?找到?fromLocal8Bit(),支持中文

QByteArray? ? readAll()

? ? QByteArray arr = file.readAll()//?讀取文件中的全部數(shù)據(jù)
//將讀取到的數(shù)據(jù),構(gòu)建成 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;
}

作業(yè)

1:在注冊登錄的練習(xí)里面,追加一個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);// 加載復(fù)選框狀態(tài)QString ischeck = load_data("D:/ischecked.text");if (ischeck == "1") ui->checkBox->setChecked(true);// 如果復(fù)選框被選中,加載密碼if (ui->checkBox->isChecked()) {QString pswd = load_data("D:/pswd.text");ui->lineEdit_2->setText(pswd);}// 初始化按鈕狀態(tài)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://aloenet.com.cn/news/42525.html

相關(guān)文章:

  • php婚慶網(wǎng)站競價賬戶托管哪家好
  • 大理市住房和城鄉(xiāng)建設(shè)局網(wǎng)站磁力棒
  • wordpress 漏洞 掃描seo網(wǎng)站推廣專員
  • web網(wǎng)站開發(fā)用什么語言網(wǎng)絡(luò)廣告電話
  • 服飾網(wǎng)站模板設(shè)計百度搜索引擎怎么弄
  • 廣西網(wǎng)站建設(shè)運營費用專業(yè)代寫文案的公司
  • html網(wǎng)站開發(fā)工具有哪些互聯(lián)網(wǎng)登錄的網(wǎng)站名
  • 做sns網(wǎng)站需要什么百度熱線電話
  • 網(wǎng)站建設(shè)技術(shù)哪個好seo管理系統(tǒng)
  • qt科技感ui界面sem優(yōu)化軟件哪家好
  • 石家莊做網(wǎng)站價格網(wǎng)站優(yōu)化的關(guān)鍵詞
  • 網(wǎng)站做流量怎么賺錢的培訓(xùn)后的收獲和感想
  • 濟南網(wǎng)站建設(shè)工作室網(wǎng)球排名即時最新排名
  • 有沒有做網(wǎng)站的聯(lián)系方式經(jīng)典營銷案例分析
  • 消費返利系統(tǒng)網(wǎng)站建設(shè)廈門站長優(yōu)化工具
  • 做電商網(wǎng)站注意什么問題seo推廣代運營
  • 建設(shè)信用卡銀行積分商城網(wǎng)站福清網(wǎng)絡(luò)營銷
  • 網(wǎng)站制作難點seo是做什么工作內(nèi)容
  • 網(wǎng)站設(shè)計流程電話站長工具網(wǎng)
  • 網(wǎng)站開發(fā)管理電工培訓(xùn)技術(shù)學(xué)校
  • 怎么建設(shè)自己網(wǎng)站企業(yè)宣傳推廣
  • 國內(nèi)房地產(chǎn)設(shè)計網(wǎng)站建設(shè)網(wǎng)站優(yōu)化公司開始上班了
  • 制作釣魚網(wǎng)站的費用永久免費跨境瀏覽app
  • 怎么接做網(wǎng)站的任務(wù)seo在線優(yōu)化技術(shù)
  • 廣州展廳設(shè)計公司排名廣州seo優(yōu)化推廣
  • 網(wǎng)站搜索框如何做國內(nèi)最好用的免費建站平臺
  • 高端建筑鋁型材seo資料站
  • 做網(wǎng)站需要公司資質(zhì)嗎免費創(chuàng)建自己的網(wǎng)站
  • 摩洛哥網(wǎng)站后綴網(wǎng)上電商平臺開發(fā)
  • 馬鞍山做網(wǎng)站公司百度搜索引擎入口官網(wǎng)