qsettings读写ini文件,qsettings中文乱码


qsettings读写ini文件,qsettings中文乱码

文章插图
QT界面编程-服务器配置界面实现:
qsettings读写ini文件,qsettings中文乱码

文章插图
展开全部


界面采用QTableWidget控件做列表.
写配置文件 , 采用QSettings类操作文件 。
----------------------------------------------------------
建立信号\槽 , QTableWidget改变之后 , 发送singal , 你直接操作QSettings就可以了;
如果是配置文件改变 , 这个你需要使用QTimer一直检查配置文件 , 如果有改变 , 你就更改QTableWidget就可以了
qsettings windows下对应哪个类:
一般对应fsndust文件的图象照应模块 。具体的////系统右键菜单写注册表
//QString strValue = https://minzuwang.com/read/m_FileTransMainWnd->m_strAppPath+"/FYSystemRightButtonUploadU.exe %1";//系统右键菜单响应程序转发给主程序
//strValue.replace('/', '\\');
////文件
//m_FileTransMainWnd->RegSettings = new QSettings("HKEY_CLASSES_ROOT\\*\\shell\\RYFileTranClient", QSettings::NativeFormat);
//m_FileTransMainWnd->RegSettings->setValue(NULL,m_FileTransMainWnd->m_strRighttext);
//m_FileTransMainWnd->RegSettings = new QSettings("HKEY_CLASSES_ROOT\\*\\shell\\RYFileTranClient\\command", QSettings::NativeFormat);
//m_FileTransMainWnd->RegSettings->setValue(NULL,strValue);
////文件夹
//m_FileTransMainWnd->RegSettings = new QSettings("HKEY_CLASSES_ROOT\\Folder\\shell\\RYFileTranClient", QSettings::NativeFormat);
//m_FileTransMainWnd->RegSettings->setValue(NULL,m_FileTransMainWnd->m_strRighttext);
//m_FileTransMainWnd->RegSettings = new QSettings("HKEY_CLASSES_ROOT\\Folder\\shell\\RYFileTranClient\\command", QSettings::NativeFormat);
//m_FileTransMainWnd->RegSettings->setValue(NULL,strValue);
上面的这些在调试时会提示:ASSERT failure in QSettings:"empty key",file io\qsettings.cpp line322
将null换成"."后就可以了 , 而且可以写注册表
//系统右键菜单写注册表
QString strValue = https://minzuwang.com/read/m_FileTransMainWnd->m_strAppPath+"/FYSystemRightButtonUploadU.exe %1";//系统右键菜单响应程序转发给主程序
strValue.replace('/', '\\');
//文件
m_FileTransMainWnd->RegSettings = new QSettings("HKEY_CLASSES_ROOT\\*\\shell\\RYFileTranClient", QSettings::NativeFormat);
m_FileTransMainWnd->RegSettings->setValue(".",m_FileTransMainWnd->m_strRighttext);
m_FileTransMainWnd->RegSettings = new QSettings("HKEY_CLASSES_ROOT\\*\\shell\\RYFileTranClient\\command", QSettings::NativeFormat);
m_FileTransMainWnd->RegSettings->setValue(".",strValue);
//文件夹
m_FileTransMainWnd->RegSettings = new QSettings("HKEY_CLASSES_ROOT\\Folder\\shell\\RYFileTranClient", QSettings::NativeFormat);
m_FileTransMainWnd->RegSettings->setValue(".",m_FileTransMainWnd->m_strRighttext);
m_FileTransMainWnd->RegSettings = new QSettings("HKEY_CLASSES_ROOT\\Folder\\shell\\RYFileTranClient\\command", QSettings::NativeFormat);
m_FileTransMainWnd->RegSettings->setValue(".",strValue);
Qt 如何避免打开多个相同子界面?:
可以设置一个标志变量判断前一次 子窗口是否打开 如果打开就设置再次点击无效
floga = 0;

void Widget::pushbutton_clicked()
{
if(floga == 0){

floga = 1;

ui->Widget_little->show;
}

}
退出时在还原floga的值就好我也是刚学QT , 不过公司有模板 。。。
Qt中的QSettings这个类有.value这个成员函数吗?:
必须有啊 , 给你一个读写配置文件的方法 , 你试试!可以有
bool QQUtil::writeInit(QString path, QString user_name, QString password)
{
if(path.isEmpty() || user_name.isEmpty() || password.isEmpty())
{
return false;
}

//创建配置文件操作对象
QSettings settings(path, QSettings::IniFormat);

//将用户信息写入配置文件
settings.beginGroup("config");
settings.setValue("user_name", user_name);
settings.setValue("password", password);
settings.endGroup();

return true;
}

bool QQUtil::readInit(QString path, QString user_key, QString &user_value)
{
user_value = https://minzuwang.com/read/QString("");
if(path.isEmpty() || user_key.isEmpty())
{
return false;
}

//当前目录的INI文件
QSettings settings(path, QSettings::IniFormat);

//读取用户配置信息
user_value = https://minzuwang.com/read/settings.value("config/"+user_key).toString();

return true;
}
如何设置Qt中的build settings:
【qsettings读写ini文件,qsettings中文乱码】在Windows操作系统中 , 大多把配置文件信息写在注册表当中 , 或写在*.ini文件中 , 对于这两种操作都有相应的Windows API函数 , 在以前的文章中都提及过 , 这里就不多说了~在Qt中 , 提供了一个相应的配置文件的类QSetting , 使用QSetting类 , 可以将用户设置以及应用程序的设置轻松存储在磁盘中 。QSettings::Scope(配置存储范围)分为UserScope、SystemScope 。

推荐阅读