Qt编程4:QSettings使用一(windows注册表的读写:实际操作)

时间:2022-09-05 09:19:39

1、Qstting编辑注册表

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QSettings">
#include  <QTime">
#include  <QHBoxLayout>
#include <QPushButton>
#include <QTextCodec">



MainWindow::MainWindow(QWidget *parent) :

    QMainWindow(parent),

    ui(new Ui::MainWindow)

{

    ui->setupUi(this);



    view = new QWebView(this);

    view->setUrl(QUrl("baidu.com"));



    QVBoxLayout * vLayout = new QVBoxLayout(this);

    QPushButton *bdButton = new QPushButton(this);

    QTextCodec *codec = QTextCodec::codecForLocale();

    QString tmpStr = codec->toUnicode("百度");

    bdButton->setText(tmpStr);



    QPushButton *sinaButton = new QPushButton(this);

    QString tmpStr2 = codec->toUnicode("新浪");

    sinaButton->setText(tmpStr2);



    vLayout->addWidget(bdButton);

    vLayout->addWidget(sinaButton);

    ui->horizontalLayout->addLayout(vLayout);

    ui->horizontalLayout->addWidget(view);



    connect(bdButton,SIGNAL(clicked()),SLOT(S_baiduSlot()));

    connect(sinaButton,SIGNAL(clicked()),SLOT(S_sinaSlot()));



    

   //------------------------------------------------以下编辑注册表

    //公司名称:zhjSoft,程序名称:setting

    QSettings *settings = new QSettings("zhjSoft","setting");

    //设置当前时间的值

    settings->setValue("time",QDateTime::currentDateTime().toString("MMddhhmmss"));

    //设置软件名称

    settings->setValue("softName","mainWindow");

    //----------------------------------------------------------------------

 

    //使用注册表的路径与QSettings::NativeFormat组合读写注册表.

    QSettings *setting2 = new QSettings ("HKEY_CURRENT_USER\\Software\\zhjTest\\setting", 									                                QSettings ::NativeFormat);

    //从注册表读取窗口的大小以及位置,设置窗口大小以及位置。

    this->restoreGeometry(setting2->value("point").toByteArray());
  //删除指定的注册表项

  setting2->remove("test");

}

 

MainWindow::~MainWindow()

{

    delete ui;

}

 

//窗口关闭事件

void MainWindow::closeEvent(QCloseEvent *e)

{

    QSettings *setting2 = new QSettings ("HKEY_CURRENT_USER\\Software\\zhjTest\\setting", QSettings ::NativeFormat);

    //设置其他元素的值

    setting2->setValue("test","red");

    //将当前窗口的大小以及位置等信息保存到注册表中,方便重新打开窗口时恢复

    setting2->setValue("point",this->saveGeometry());

    QMainWindow::closeEvent(e);

}

 

void MainWindow::S_baiduSlot()

{

  //载入百度页面

    view->load(QUrl("baidu.com"));

}



void MainWindow::S_sinaSlot()

{

  //载入新浪页面

    view->load(QUrl("sina.cn"));

}

 

2、实现效果如图:


Qt编程4:QSettings使用一(windows注册表的读写:实际操作)Qt编程4:QSettings使用一(windows注册表的读写:实际操作)Qt编程4:QSettings使用一(windows注册表的读写:实际操作)

 

Qt编程4:QSettings使用一(windows注册表的读写:实际操作)

 

 

Qt编程4:QSettings使用一(windows注册表的读写:实际操作)