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 。

推薦閱讀