Chinaunix首页 | 论坛 | 博客
  • 博客访问: 400151
  • 博文数量: 158
  • 博客积分: 1227
  • 博客等级: 少尉
  • 技术积分: 946
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-20 16:19
文章分类
文章存档

2016年(1)

2015年(1)

2012年(107)

2011年(49)

分类: WINDOWS

2012-04-09 09:58:17

原文地址:

1、用QSettings写注册表

  1. QSettings *reg = new QSettings("HKEY_CURRENT_USER\\Software\\yinhaifan",  
  2.                      QSettings::NativeFormat);  
  3.      reg->setValue("registered",true);  
  4.      delete reg;  

QSettings *reg = new QSettings("HKEY_CURRENT_USER\\Software\\yinhaifan", QSettings::NativeFormat); reg->setValue("registered",true); delete reg;

当然reg->setValue还可以写入字符串,整型之类的数据。

比如reg->setValue("registered","yes");

2、用QString读注册表

  1. QSettings *reg = new QSettings("HKEY_CURRENT_USER\\Software\\yinhaifan",  
  2.                  QSettings::NativeFormat);  
  3. if (reg->value("registered",false).toBool())  
  4. {  
  5.      QMessageBox::information(NULL,"information","registered");  
  6. }  
  7. delete reg;  

QSettings *reg = new QSettings("HKEY_CURRENT_USER\\Software\\yinhaifan", QSettings::NativeFormat); if (reg->value("registered",false).toBool()) { QMessageBox::information(NULL,"information","registered"); } delete reg;

还可以toInt(),toString()等。

3、用QSettings写ini文件:

  1. QSettings *ConfigIni = new QSettings("D:\\a.ini",QSettings::IniFormat,0);  
  2. ConfigIni->setValue("/config/node1",ui->lineEdit->text());  
  3. delete ConfigIni;  

QSettings *ConfigIni = new QSettings("D:\\a.ini",QSettings::IniFormat,0); ConfigIni->setValue("/config/node1",ui->lineEdit->text()); delete ConfigIni;

4、用QSettings读ini文件:

  1. QSettings *ConfigIni = new QSettings("D:\\a.ini",QSettings::IniFormat,0);  
  2. ui->lineEdit_2->setText(ConfigIni->value("/config/node1","20").toString());  
  3. delete ConfigIni;  

QSettings *ConfigIni = new QSettings("D:\\a.ini",QSettings::IniFormat,0); ui->lineEdit_2->setText(ConfigIni->value("/config/node1","20").toString()); delete ConfigIni;

   这几段代码都是我在Qt Creator里面写的,所以用ui->lineEdit*->text()和ui->lineEdit*->setText()做输入和输出了

例子:

工程文件,参数输入都没有变!只需要添加一个ini文件就可以啦!

  在文档中的QSettings Class Reference部分讲的很清楚

---------------------------------------------------------------------

m_nDevNo = nDevNo;
 QString strTemp;
 QString xmlPath = CSC_APP.m_strWorkPath + "/InitInfo.ini";
 QSettings *mySetting = new QSettings(xmlPath,QSettings::IniFormat);

 foreach (QString group, mySetting->childGroups())
 {
  mySetting->beginGroup(group);
  foreach (QString key, mySetting->childKeys())
  {
   QTextCodec *codec=QTextCodec::codecForName("GBK");
   QString outStr = codec->toUnicode(key.toLatin1());
   if (outStr == "自描述语言")
   {
    if ( mySetting->value(key,"0").toInt() == 1)
     ui.SelfDspLgu->setCurrentIndex(1);
    else
     ui.SelfDspLgu->setCurrentIndex(0);
   }
   if (outStr == "工作语言")
   {
    if ( mySetting->value(key,"0").toInt() == 1)
     ui.WorkLgu->setCurrentIndex(1);
    else
     ui.WorkLgu->setCurrentIndex(0);
   }

   if (outStr == "离线工作")
   {
    if ( mySetting->value(key,"0").toInt() == 1)
     ui.WorkMode->setCurrentIndex(1);
    else
     ui.WorkMode->setCurrentIndex(0);
   }

   if (outStr == "召唤自描述方式")
   {
    if ( mySetting->value(key,"0").toInt() == 1)
     ui.SelfDspSource->setCurrentIndex(1);
    else
     ui.SelfDspSource->setCurrentIndex(0);
   }

   if (outStr == "组播地址")
   {
    strTemp = mySetting->value(key,"236.8.8.8").toString();
    ui.GrpAddress->setText(strTemp);
   }

   if (outStr == "接收端口号")
   {
    strTemp = mySetting->value("接收端口号","2000").toString();
    ui.RecPort->setText(strTemp);
   }

   if (outStr == "发送端口号")
   {
    strTemp = mySetting->value("发送端口号","2001").toString();
    ui.TargetPort->setText(strTemp);
   }

   if (outStr == "启用本机地址")
   {
    strTemp = mySetting->value(key,"0").toString();
   }
   if (outStr == "本机地址")
   {
    strTemp = mySetting->value(key,"0").toString();
    ui.LocalIp->setText(strTemp);
   }
   if (outStr == "装置名称")
   {
    strTemp = mySetting->value(key,"0").toString();
    ui.EqpName->setText(strTemp);
   }
   if (outStr == "装置地址")
   {
    strTemp = mySetting->value(key,"0").toString();
    ui.EqpAddress->setText(strTemp);
   }

   if (outStr == "装置IP")
   {
    strTemp = mySetting->value(key,"0").toString();
    ui.TargetIp->setText(strTemp);
   }
  }
  mySetting->endGroup();

原文地址:http://no001.blog.51cto.com/1142339/383314

阅读(2211) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~