私は&負荷に設定を保存するために、これらの2つの機能を思い付いたように、私の窓の大きさを保存するためにQSettings
を使用したい:QSettingsに何も保存されないのはなぜですか?
void MainWindow::loadSettings()
{
settings = new QSettings("Nothing","KTerminal");
int MainWidth = settings->value("MainWidth").toInt();
int MainHeight = settings->value("MainHeight").toInt();
std::cout << "loadSettings " << MainWidth << "x" << MainHeight << std::endl;
std::cout << "file: " << settings->fileName().toLatin1().data() << std::endl;
if (MainWidth && MainHeight)
this->resize(MainWidth,MainHeight);
else
this->resize(1300, 840);
}
void MainWindow::saveSettings()
{
int MainHeight = this->size().height();
int MainWidth = this->size().width();
std::cout << "file: " << settings->fileName().toLatin1().data() << std::endl;
std::cout << "saveSettings " << MainWidth << "x" << MainHeight << std::endl;
settings->setValue("MainHeight",MainHeight);
settings->setValue("MainWidth",MainWidth);
}
を今、私は予想通りsaveSettings
に抽出されdemensionsしかし、誰のファイルを見ることができますloadSettings
は常に0だけをロードします。どうしてこれなの?
パーフェクト&ビューティフル!ありがとう! – cerr
'QSettings'の理由は、' delete'が呼び出されない限り、それが破壊されていないので、ヒープに割り当てられたときには動作しないと思います。また、 '' Sync() '(https://doc.qt.io/qt-5/qsettings.html#sync)関数を呼び出すには、' QSettings'のデストラクタが必要です。 – Mike
優れたポイント。シンク関数を手動で呼び出して、ヒープ上で動作させることができます。 – phyatt