最近在项目遇到了一个想要根据参数保存等长文件名的需求。想到这个不是很复杂,但是也可以记录一下,毕竟每一个小的需求也能扩展很多。
- 直接上代码吧。 参数根据项目的需求来获取。(有时候获取都有点麻烦~)
/// @brief 可以输出等长的字符串
/// @param arg中的第一个参数是填的内容
/// @param arg中的第二个参数是字符串的所占的内容
/// @param arg中的第三个参数是前面数字的进制数
/// @param arg中的第四个参数是自动补全的字符
QString filename = QString("%1: %2: %3").arg(6,2,10,QLatin1Char('0')).arg(4,2,10,QLatin1Char('0'))\
.arg(45,2,10,QLatin1Char('0'));
qDebug() << filename;
QString filename2 = QString("%1: %2: %3").arg(6,5,10,QLatin1Char('x')).arg(4,5,10,QLatin1Char('a'))\
.arg(45,5,10,QLatin1Char('0'));
qDebug() << filename2;
/// -# 想起来可以在写入文件中加入写的当前时间,就加上下面的代码就行了
/// -# 显示当前时间
QDateTime time = QDateTime::currentDateTime();
QString str = time.toString("yyyy/mm/dd hh:mm:ss");
/// 输出如下:
"06: 04: 45"
"xxxx6: aaaa4: 00045"
"2020/17/21 22:17:57"
/// -# 下面是保存文件参数的code
# [] 进行分组, # 代表注释
[data]
mode=11111
assdata=2222
assSrc=3333
lineHigh=4444
# here is message
[other]
port=2222
/// -# 打开上次设置的参数 这个实在初始化上
QSettings* configIni = new QSettings(appPath() + paramFile, QSettings::IniFormat);
int param_1 = configIni->value("/data/mode").toInt();
int param_2 = configIni->value("/data/assdata").toInt();
int param_3 = configIni->value("/data/assSrc").toInt();
int param_4 = configIni->value("/data/lineHigh").toInt();
ui->comboBox->setCurrentIndex(param_1);
ui->comboBox_2->setCurrentIndex(param_2);
ui->lineEdit->setText(QString::number(param_3));
ui->lineEdit_2->setText(QString::number(param_4));
/// -# 写入文件, 保存每一次设置的值 这个是点击确定按钮后, 进行参数设置完毕后,此处应有槽函数
QSettings* configIni_1 = new QSettings(appPath() + paramFile, QSettings::IniFormat);
configIni_1->setValue("/data/mode", ui->comboBox->currentIndex());
configIni_1->setValue("data/assdata", ui->comboBox_2->currentIndex());
configIni_1->setValue("data/assSrc", ui->lineEdit->text().toInt());
configIni_1->setValue("data/lineHigh", ui->lineEdit_2->text().toInt());