c++ - 如何使用 QSettings 保存和加载数据?
问题描述
我是 QT5 的初学者,我在 YouTube 上搜索了任何 QSettings 教程,只找到了其中的 2 个,都是西班牙语的。
我正在尝试存储来自 textEdit 的简单文本,然后在单击保存/加载按钮时加载它。到目前为止,我还无法做到这一点。到目前为止,这是我的代码,没有错误,只是不起作用。
小部件.cpp
void Widget::saveText(QString key, QString text)
{
QSettings settings("App", "BillReminder");
settings.beginGroup("Text");
settings.setValue(key + "t", text);
settings.endGroup();
}
QString Widget::loadText(QString key)
{
QSettings settings("App", "BillReminder");
settings.beginGroup("Text");
settings.value(key + "t", text).toString();
settings.endGroup();
return QString(text);
}
void Widget::on_saveButton_clicked()
{
saveText("textEdit", text);
}
void Widget::on_loadButton_clicked()
{
QString text1 = loadText(text);
ui->textEdit->setText(text1);
}
小部件.h -class Widget : public QWidget
private:
Ui::Widget *ui;
QString text;
void saveText(QString key, QString text);
QString loadText(QString key);
void SetText(QString key);
解决方案
问题出在您的 loadText() 方法中。QSettings::value()是一个返回从QSettings
存储中检索到的值的函数。第二个参数只是一个默认值,如果您的设置存储不包含请求的密钥,则会返回该值。
QString Widget::loadText(QString key)
{
QSettings settings("App", "BillReminder");
settings.beginGroup("Text");
QString theValue = settings.value(key + "t", text).toString();
settings.endGroup();
return theValue;
}
推荐阅读
- javascript - 如何获取从 JSON 到 JS 的键值?
- python - 尝试反转字典
- nearprotocol - 如何在第 3 方应用程序中使用新创建的 Near 帐户签署消息?
- flutter - 您如何在颤动中构建这些选项卡样式按钮之一?
- python - 如何使用带有真/假 lambda 函数的 itertools.groupby
- ios - DateFormatter 毫秒不工作
- macos - iTerm 作为 Anaconda 的默认终端
- python-3.x - python bitcoinrpc - 不确定如何传递参数
- maven - 在当前项目错误中找到前缀“appengine”的插件
- log4net - 如何让 log4net AdoNetAppender 在我的表中插入 NULL 而不是“(null)”?