我一直在开发我的第一个 gui 应用程序。我需要为所有功能存储一些值,所以我决定使用 QSettings 并学习如何使用 Windows 注册表。我找到了一个大小和位置的例子,所以我对这里发生的事情有一点了解,但由于某种原因,当我自己尝试时,我无法让它工作。我已经为此苦苦挣扎了几个星期,只是找不到任何关于如何将我自己的字符串添加到注册表的好的参考资料。下面是发生这种情况所需的所有相关代码。任何帮助或指向正确方向将不胜感激。我也有 Qt 4 或类似的基础知识,但在这种情况下对我没有太大帮助,
主窗口.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();
}
主窗口.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;
};