- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我编写了一个简单的应用程序来使用 QSettings。谁能告诉我我在这里做错了什么..
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
private:
QWidget *pMainWidget;
QHBoxLayout *pMainLayout;
QSettings *pSetting;
QLabel *pLabel;
QPushButton *pButtonShow;
QPushButton *pButtonSet;
QLineEdit *pLineEdit;
QString pSettingFile;
public slots:
void showSettingData();
void setData();
};
#include "mainwindow.h"
#include <QtCore/QCoreApplication>
#include <QApplication>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
pMainWidget = new QWidget (parent);
pMainLayout = new QHBoxLayout(pMainWidget);
pLabel = new QLabel("Output comes here",pMainWidget);
pLineEdit = new QLineEdit();
pButtonShow = new QPushButton("Show", pMainWidget);
pButtonSet = new QPushButton("Set", pMainWidget);
setCentralWidget(pMainWidget);
pMainWidget->setLayout(pMainLayout);
pMainLayout->addWidget(pLabel);
pMainLayout->addWidget(pButtonShow);
pMainLayout->addWidget(pLineEdit);
pMainLayout->addWidget(pButtonSet);
pSettingFile = QApplication::applicationDirPath()+"settings.ini";
QObject::connect(pButtonShow, SIGNAL(clicked()), this, SLOT(showSettingData()));
QObject::connect(pButtonSet, SIGNAL(clicked()), this, SLOT(setData()));
}
MainWindow::~MainWindow()
{
}
void MainWindow::setData()
{
QSettings Setting(pSettingFile, QSettings::NativeFormat);
QString data = pLineEdit->text();
Setting.setValue("baseurl", data);
}
void MainWindow::showSettingData()
{
QSettings Setting(pSettingFile, QSettings::NativeFormat);
if (Setting.contains("baseurl"))
{
QString data = Setting.value("baseurl").toString();
pLabel->setText(data);
}
}
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
当我调试时,它不会为“Setting.contains("baseurl")”返回 false...我们必须创 build 置文件吗?
最佳答案
问题是您在设置数据后没有调用同步。尝试在设置后插入这一行:
Setting.setValue("baseurl", data);
Setting.sync();
这在 Windows 上应该不需要,但在 Windows 上似乎是必需的。
此外,正如评论中所建议的,如果您真的想使用文件而不是可能的注册表,我建议使用 QSettings::IniFormat
而不是 QSettings::NativeFormat
在 Windows 上。
您还应该考虑将设置对象作为类成员而不是一直构造它。
另请注意,您可能无意中使用了错误的路径,因为您必须在“settings.ini”文件名之前明确添加“斜杠”字符。然而,这只是旁注。
关于android - QSetting 不适合我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23027181/
有没有办法设置 QSettings 存储的实际默认路径(有或没有文件名),并防止 QSettings 将组织名称等内容附加到该路径?这要求 QSettings 的进一步使用保持不变并且不知道设置存储路
你好,我有一个由应用程序生成的 Mac OS X plist 文件 (QSetting::NativeFormat),现在我想在不支持它的基于 Linux 的操作系统上使用这个 plist 文件。所以
Qt 错误报告链接:QTBUG-53313 从 Qt 5.5 迁移到 Qt 5.6 会出现一个问题 QSettings它在系统范围内找不到 QSettings 配置文件。在下面的 main.cpp 中
我程序里的设置挺多的,大概有3000个。它们不应该在程序开始时立即阅读,而是在需要时在程序的 10 个不同位置阅读。我想知道执行此操作的在性能/内存使用方面最有效的方法是什么: 1 始终打开一个“全局
我想用QSettings保存高分,但它不能正常工作。我在 2 个不同的文件中保存和读取这些值。 这是我负责将值添加到数组中的代码: QSettings settings; settings.begin
我从某个位置上传文件,然后下一次上传必须指向上次上传的位置。 我怎样才能使用 QSettings 来实现? ? 最佳答案 在使用 QSettings 之前,我建议在您的 main() 中设置一些有关您
我有 ini 格式的 QSettings 对象。 当我在 ini 文件中写入 settings.beginGroup("GENERAL") 时,我看到以下内容: [%常规] 为什么会这样? 最佳答案
我正在尝试为 QSettings 创建自定义格式,但无法从存储中读取它。 在下面的代码中,如果我运行 settings.setValue("test", 123") ,它会正确调用 write 函数并
我正在使用QSettings在Windows中将某些数据存储为ini文件。 我想查看ini文件,但我不知道ini文件的位置。 这是我的代码: QSettings *set = new QSetting
我使用 QSettings 来编辑 .desktop 菜单条目。我这样做: dfile 是一个 QString - 绝对文件路径 QSettings set(dfile, QSettings::Ini
我正在尝试在我的代码中使用 QSettings,但它无法正常工作。我的代码是: In Mainwindow.h QSettings settings (我已经在所有setOrganizationNam
我正在使用非图形用户界面产品的 Qsettings 将其设置存储到 xml 文件中。这是作为一个库编写的,可在 C、C++ 程序中使用。每个产品将有 1 个 xml 文件。每个产品可能有多个子产品,它
我想知道为什么这段基于虚假公司名称和应用程序名称创建 Qt 设置实例的代码不起作用。 这里是mainwindow.h,还有一个main.cpp,还有mainwindow.cpp,一个.pro文件,.u
我正在使用 Qsetting 来存储上次使用的值。我的代码只适用于一个领域。这意味着当我为第二轮应用相同的逻辑时它只工作一次,但它不会那样做。 文件io.cpp #include "fileio.h"
Does Qt has something like QSettings, but for local scopes? 我正在寻找具有相同方法但不特定于 APPLICATION 的数据结构。 我的意思
QSettings settings("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run",QSettings::Nati
有没有办法使用 QSettings 为每个键存储多个值,并将其存储在人类可读(无二进制文件).ini 文件中? 可能看起来像: key_1=value_1,value2 key_2=value_1 .
我正在尝试为我的 Qt 应用程序实现应用程序设置。我正在使用 QSettings ,像这样创建了我的类的实例 settings = new QSettings(qApp->organizationNa
我正在使用 QSettings 编写一个 .ini 文件,它将作为我的应用程序配置文件。只有一个问题: QSettings 将组名 [General] 添加到文件的顶部。 我这样设置文件: QSett
我编写了一个简单的应用程序来使用 QSettings。谁能告诉我我在这里做错了什么.. 主窗口.h class MainWindow : public QMainWindow { Q_OBJE
我是一名优秀的程序员,十分优秀!