本文整理汇总了C++中QFile::waitForBytesWritten方法的典型用法代码示例。如果您正苦于以下问题:C++ QFile::waitForBytesWritten方法的具体用法?C++ QFile::waitForBytesWritten怎么用?C++ QFile::waitForBytesWritten使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QFile
的用法示例。
在下文中一共展示了QFile::waitForBytesWritten方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: guardar
void DialogVarConfig::guardar()
{
QStringList retorno;
retorno<<ui->txt1->text();
retorno<<ui->txt2->currentText();
retorno<<ui->txt3->text();
retorno<<ui->txt4->text();
retorno<<ui->txt5->text();
retorno<<ui->txt6->text();
retorno<<ui->txt7->text();
retorno<<ui->txt8->text();
retorno<<ui->txt9->text();
retorno<<ui->txt10->text();
if(estado == 2){
datos.append(retorno.join(":::"));
} else if(estado == 1){
datos.removeAt(index);
datos.append(retorno.join(":::"));
}
QFile f;
f.setFileName("scriptsconfig");
f.remove();
f.open(QIODevice::WriteOnly);
f.write(datos.join("\n").toLatin1());
f.waitForBytesWritten(0);
f.close();
}
示例2: eliminar
void DialogVarConfig::eliminar()
{
datos.removeAt(index);
QFile f;
f.setFileName("scriptsconfig");
f.remove();
f.open(QIODevice::WriteOnly);
f.write(datos.join("\n").toLatin1());
f.waitForBytesWritten(0);
f.close();
cargarDatos();
}
示例3: on_cmdImport_clicked
//.........这里部分代码省略.........
dirPath = AppFunc::getAppSavePath() + QString ("/config/") + configName;
// Verzeichnis da?
QDir dirobj (dirPath);
if (!dirobj.exists(dirPath)){
//Verzeichnis existiert nicht
// Pfad erstellen
if (!dirobj.mkpath(dirPath)) {
// Pfad konnte nicht erstellt werden
Message::error(QObject::tr("Unable to create directory!"), QObject::tr("Import Configuration"));
return;
}
} else {
// Verzeichnis existiert
Message::error(QObject::tr("A diretory with this name already exists!"), QObject::tr("Import Configuration"));
return;
}
// Datei ins neue Verzeichnis kopieren
//QFile importFileCrypt (m_ui->txtImportPath->text());
QString packFile = dirPath + QString("/") + configName + QString(".zip");
// Erstmal entschlüsseln
if(QFile::exists(packFile)) {
QFile::remove(packFile);
}
// Die Daten einlesen
{
QFile crypted (m_ui->txtImportPath->text());
if (crypted.open(QIODevice::ReadOnly)) {
// Nun das Ziel öfffnen
QFile targetFile (packFile);
if (targetFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
// Alles offen, kann losgehen
QByteArray data = crypted.readAll();
Crypt crypt;
crypt.setSecretKey(m_ui->txtPassword->text());
targetFile.write(crypt.cryptToPlainTextExt(data));
targetFile.waitForBytesWritten(3000);
targetFile.flush();
targetFile.waitForBytesWritten(3000);
// Alles Ok
targetFile.close();
crypted.close();
}
} else {
Message::error(QObject::tr("Can't open crypted file"));
return;
}
}
// Nun die Datei entpacken
if (!Zip::extract(packFile, dirPath)) {
Message::error(QObject::tr("Can't open zip file"));
return;
}
// Nun ist alles entpackt, das Ziparchiv nun löschen
QFile configZip (packFile);
if (!configZip.remove()) {
Message::error(configZip.errorString(), QObject::tr("Import Configuration"));
}
QString saveName;
QString savePath;
QString ovpnFilePath = m_ui->txtImportPath->text().right(m_ui->txtImportPath->text().size() - m_ui->txtImportPath->text().lastIndexOf("/") -1);
saveName = ovpnFilePath.left(ovpnFilePath.size()-6);
savePath = dirPath + QString("/") + ovpnFilePath.left(ovpnFilePath.size()-6) + QString(".ovpn");
if (m_ui->rbSaveAsName->isChecked()) {
// ovpn umbennen
QFile ovpnFile (savePath);
if (ovpnFile.exists()) {
// umbenennen
ovpnFile.rename(dirPath + QString("/") + configName + QString(".ovpn"));
saveName = configName;
}
}
savePath = dirPath + QString("/") + saveName + QString(".ovpn");
QFile ovpnFile (dirPath + QString("/") + configName + QString(".ovpn"));
if (!ovpnFile.exists()) {
Message::error(QObject::tr("Import failed! Removing empty directory."), QObject::tr("Import Configuration"));
dirobj.rmdir(dirPath);
} else {
Preferences::instance()->addNewConfigToDatabase(saveName, savePath.replace("\\", "/"));
Preferences::instance()->refreshConfigList();
Preferences::instance()->setConnectionStatus();
Message::information(QObject::tr("Import successfully ended!"), QObject::tr("Import Configuration"));
Preferences::instance()->refreshDialog();
Preferences::instance()->setIcon();
this->close();
}
} else {
Message::error(QObject::tr("No import file selected!"), QObject::tr("Import Configuration"));
}
}
}
示例4: log
void Debug::log(const QString &message, DebugLevel::Level level, const QString &filename)
{
// Schreibt die Logmeldung, wenn ein bestimmtes Level gesetzt ist
if (debugEnabled) {
// Level überprüfen
if (level <= debugLevel) {
// Soll das Datum mit erfasst werden
QString timeDate ("");
if (dateTimeEnabled) {
QString dateFormat (QLatin1String("dd.MM.yyyy hh:mm:ss"));
// Millisekunden ausgeben
if (mSecsEnabled) {
dateFormat = QLatin1String("dd.MM.yyyy hh:mm:ss.zzz");
}
timeDate = QDateTime::currentDateTime().toString(dateFormat);
}
// Ist der Pfad gefüllt
if (debugPath.isEmpty()) {
return;
}
// Ist der Pfad vorhanden
QDir debugDir (debugPath);
if(!debugDir.exists()) {
// Pfad erstellen
if (!debugDir.mkpath(debugPath)) {
// Fehler
return;
}
}
// Soll eine extra Datei erstellt werden?
QString fileName ("debug_vpn.txt");
if (!filename.isEmpty()) {
fileName = filename;
}
// Nun die Einrückrung
QString indent;
// Die Stackgröße spiegelt die Einrücktiefe wieder
indent = indent.fill(QChar('\t'), debugCategories.size());
// Das Level herausfinden
QString levelName ("");
switch (level) {
case DebugLevel::Error:
levelName = QLatin1String("Error");
if (debugLevel == DebugLevel::Error) {
// Die Einrücktiefe ist 0
indent.clear();
}
break;
case DebugLevel::Category:
levelName = QLatin1String("Category");
break;
case DebugLevel::Function:
levelName = QLatin1String("Function");
break;
case DebugLevel::Comment:
levelName = QLatin1String("Comment");
break;
case DebugLevel::Database:
levelName = QLatin1String("Database");
break;
case DebugLevel::Debug:
levelName = QLatin1String("Debug");
break;
case DebugLevel::Construktor:
levelName = QLatin1String("Construktor");
break;
case DebugLevel::Destruktor:
levelName = QLatin1String("Destruktor");
break;
default:
// Diesen Fall sollte es nicht geben
// Da es nur ein Flag für die Ausgabesteuerung ist
levelName = QLatin1String("ALL");
}
// LineFeed bestimmen
QLatin1String lineFeed ("\r\n");
#ifndef Q_OS_WIN32
lineFeed = QLatin1String ("\n");
#endif
// Alles bearbeitet, nun den String ausgeben
// Datei öffnen
QFile debugFile (debugPath + fileName);
if (debugFile.open(QIODevice::WriteOnly | QIODevice::Append)) {
// Datei ist offen nun schreiben
QString data (indent + timeDate + QLatin1String (" ") + levelName + QLatin1String (" -> ") + message + lineFeed);
debugFile.write(data.toAscii());
// Kurz warten
debugFile.waitForBytesWritten(1000);
// Datei wieder schließen
debugFile.close();
}
}
}
}
示例5: on_cmdExport_clicked
void ExportWidget::on_cmdExport_clicked()
{
QString exportKey = "insecure";
if(!ui.txtExportKey->text().isEmpty())
exportKey = ui.txtExportKey->text();
else
{
// TODO: notify user password is not secure
}
bool fError (false);
QString errMes ("");
if (ui.txtDestFile->text().isEmpty()) {
fError = true;
errMes = QObject::tr("Invalid path specify[empty]!");
}
if (!fError) {
if (exportKey.isEmpty()) {
fError = true;
errMes = QObject::tr("Invalid password specify[empty]!");
}
}
// Viel zu tun
// Dateien ermitteln, packen, verschlüsseln und löschen
if (!fError) {
if (!this->configPath.isEmpty()) {
// Config öffen und Zertifikate auslesen
QFile configFile (this->configPath);
if (!configFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
Message::error(QObject::tr("Can't open config!"), QObject::tr("Export Configuration"), this);
return;
}
// Besteht das Verzeichnis schon?
QString dirPath = ui.txtDestFile->text();
QString zipFile = dirPath + QLatin1String("/export.zip");
QString configName = this->configPath.right(this->configPath.size() - this->configPath.lastIndexOf("/") -1);
configName = configName.left(configName.size()-5);
QString cryptFile = dirPath + QLatin1String("/") + configName + QLatin1String(".crypt");
QDir dirobj (dirPath);
if (!dirobj.exists(dirPath)){
//Verzeichnis existiert nicht
// Pfad erstellen
if (!dirobj.mkpath(dirPath)) {
// Pfad konnte nicht erstellt werden
Message::error(QObject::tr("Unable to create directory!"), QObject::tr("Export Configuration"), this);
return;
}
} else {
// Verzeichnis existiert
QFile file(cryptFile);
if (file.exists()) {
// Datei existiert bereits
// löschen
if (!file.remove()) {
Message::error(file.errorString(), QObject::tr("Export Configuration"), this);
return;
}
}
}
// Alle Daten da, packen
bool error (false);
if (!CZip::archive(zipFile, this->configPath.left(this->configPath.lastIndexOf("/")), false)) {
error = true;
}
if (error) {
Message::error(QObject::tr("Can't zip the data."), QObject::tr("Export Configuration"), this);
return;
}
// Nun verschlüsseln
if (!fError) {
QFile zipToCrypt (zipFile);
if (zipToCrypt.open(QIODevice::ReadOnly)) {
QFile cryptedFile (cryptFile);
if (cryptedFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
// Daten einlesen, verschlüsseln und wieder schreiben
QByteArray data;
data = zipToCrypt.readAll();
// Crypt bauen
auto oldKey = Crypt::secretKey;
// Den Schlüssel setzen
Crypt::setSecretKey(exportKey);
// Verschlüsseln und schreiben
cryptedFile.write(Crypt::encodePlaintextAscii(data).toLatin1());
cryptedFile.waitForBytesWritten(2000);
cryptedFile.flush();
cryptedFile.waitForBytesWritten(2000);
// Nun alles wieder schliessen
cryptedFile.close();
zipToCrypt.close();
//.........这里部分代码省略.........