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

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

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注册表的读写:实际操作)