
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.171] |
![]() |
|
![]() |
|
|
Здравствуйте!
В проекте сохраняю и загружаю настройки. После сохранения файл с настройками имеет вид: ![]() ![]() [SelectedChannels] 1=false 2=false 3=true 4=false 5=false 6=true 7=false 8=false 9=false 10=true 11=false 12=false 13=true 14=false 15=false 16=true [DataAcquisitionAndRecordingOptions] AdcChannelsPollingPeriod=0.01 GraphUpdatePeriod=100 WriteDataPeriod=300 GraphSensorOptions="\x414\x430\x432\x43b\x435\x43d\x438\x435 (0,5-0,46)\n\x422\x440\x435\x43d\x438\x435 (0,01-0,4)\n\x412\x44f\x437\x43a\x43e\x441\x442\x44c (45,8-67,5)" FileNameForSaveResult=resultdata.dat ![]() ![]() Давление (0,5-0,46) Трение (0,01-0,4) Вязкость (45,8-67,5) 1. Как правильно сохранять и загружать данные, которые я ввожу в QTextEdit? В редакторе крейтора установлен UTF-8. 2. Данные я загружаю следующим образом: ![]() ![]() void Dialog::LoadSettings() { QSettings settings(fileForSave, QSettings::IniFormat); settings.beginGroup("SelectedChannels"); QStringList lstChannels = settings.childKeys(); foreach (const QString &str, lstChannels) { Checks[str.toInt () - 1]->setChecked (settings.value (str).toBool ()); } settings.endGroup(); settings.beginGroup("DataAcquisitionAndRecordingOptions"); QStringList lstData = settings.childKeys(); foreach (const QString &str, lstData) { qDebug() << str; } spbSurvey->setValue(settings.value(lstData[0]).toDouble()); spbGraphUpg->setValue(settings.value(lstData[1]).toInt()); spbWriteData->setValue(settings.value(lstData[2]).toInt()); txtGraphSensor->setText(settings.value(lstData[3]).toString()); lblFileName->setText(settings.value(lstData[4]).toString()); settings.endGroup(); } Проект прикрепил. Помогите, пожалуйста. Прикреплённый файл ![]() |
Сообщ.
#2
,
|
|
|
Цитата tumanovalex @ 1. Как правильно сохранять и загружать данные, которые я ввожу в QTextEdit? В редакторе крейтора установлен UTF-8 tumanovalex, а вот тут пришло моё время тебя огорчить ![]() Дальше "халявы" не будет. Иначе ты просто будешь форум забрасывать вопросами, в надежде что за тебя кто-то что порешает. Тебя "научили ходить - дальше иди учись самостоятельно". Ну не совсем полностью, но в большей мере... В твоём распоряжении есть отладчик. Ставь точки останова, запускай дебаг. На точках останова анализируй содержимое переменных. И вот если ты скажешь "я перепробовал 5-7 различных методов, а они не прокатили" - вот тогда спрашивай. Но эти 5-7 методов и что там не получилось, ты будешь обязан предварительно описать. Если коротко ... давай учись мало-по-малу ходить самостоятельно. И начнём мы с этой темы! |
Сообщ.
#3
,
|
|
|
Как я понял, childKeys() и allKeys() сортируют ключи. Для чекбоксов это не стало проблемой из-за использования QVector<QCheckBox*> Checks и нумерации чекбоксов, а вот для других элементов интерфейса - стало. Нашел решения сохранения в XML, но они довольно сложные. Решил проблему коряво, но просто - сделал двузначную нумерацию в названиях параметров, например, 01_AdcChannelsPollingPeriod, 02_GraphUpdatePeriod и т.д.
|
Сообщ.
#4
,
|
|
|
tumanovalex, ну если мы одну группу контролов определили как QVector<QCheckBox*>, то что нам мещает еще определить пару-тройку (сколько надо) групп. Но уже как QMap<QString, QWidget*>? А потом просто обращаться по ключам? С последующими правильными кастами.
|
Сообщ.
#5
,
|
|
|
Спасибо за подсказку, попробую и так.
|
Сообщ.
#6
,
|
|
|
Цитата Majestio @ QMap<QString, QWidget*> Ну это конечно для гурманов ![]() |