簡體   English   中英

如何使用QSettings將QString添加到注冊表

[英]How to add QString to the registry using QSettings

我一直在做我的第一個GUI應用程序。 我需要為所有功能存儲一些值,因此我決定使用QSettings並學習如何使用Windows注冊表。 我已經找到了一個關於大小和位置的示例,因此我對這里發生的事情有一點了解,但是由於某種原因,當我自己嘗試時,它無法正常工作。 我已經為此苦苦掙扎了幾周了,只是找不到關於如何將自己的字符串添加到注冊表的任何好的參考資料。 以下是完成此操作所需的所有相關代碼。 任何幫助或指向正確方向的信息將不勝感激。 我也有Qt 4或類似的基礎知識,但在這種情況下對我沒有太大幫助,因此,如果有人快速參考一些與質量相關的文章或有關更高級QT主題的更全面的著作,我將是我很想聽聽他們的聲音,但不想走近這個話題,我敢肯定那里有很多好書。

MainWindow.cpp

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
createActions();
createMenus();
createMainWidget();
createIcons();
createDocks();
createStatusBar();

setMinimumSize(950,600);
setWindowTitle(tr("Black Ops Toolbox: Vrs. 0.0.0.12.01"));

QString defaultDirPath = "";

readSettings();
}

void MainWindow::readSettings()
{
QSettings settings;
QPoint pos = settings.value("pos", QPoint(25,25)).toPoint();
move(pos);
QSize size = settings.value("size",QSize(1200,900)).toSize();
resize(size);
QString defaultDirPath = settings.value("defaultDirPath", QString("c:/programfiles/")).toString();

}

void MainWindow::writeSettings()
{
QSettings settings;
settings.setValue("pos",pos());
settings.setValue("size",size());
settings.setValue("defaultDirPath", QVariant(QString *defaultDirPath).toString());
}

void MainWindow::closeEvent(QCloseEvent *event)
{
writeSettings();
}

MainWindow.h

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);

protected:
void closeEvent(QCloseEvent *event);

private:
void createActions();
void createActionEvents();
void createMenus();
void createMainWidget();
void createIcons();
void createDocks();
void createStatusBar();
void readSettings();
void writeSettings();

QString *defaultDirPath;
};

我確實還沒有使用QSettings,但是從文檔看來,您的代碼中似乎缺少一些信息。

特別是,您必須使用QSettings構造函數(在“基本用法”部分中)提供組織名稱和應用程序名稱,例如

 QSettings settings("MySoft", "Star Runner");

或使用QCoreApplication設置,然后使用默認的QSettings構造函數

 QCoreApplication::setOrganizationName("MySoft");
 QCoreApplication::setOrganizationDomain("mysoft.com");
 QCoreApplication::setApplicationName("Star Runner");
 ...
 QSettings settings;

您是否嘗試過其中一種方法來創建QSettings?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM