Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с использованием QSettings

84K
07 ноября 2014 года
alexbo
5 / / 24.10.2014
Здравствуйте! Возникла проблема при написании программы для работы с реестром. Задание следующее: Разработать программу для просмотра в разделе HKEY_CURRENT_USER параметров строкового и целочисленного типа. Обеспечить возможность перемещения по подразделам.
Суть моей программы: при нажатии на кнопку Start в первом listWidgete появляется строка HKEY_CURRENT_USER. При выборе этой строки и во второй listWidget записываются разделы HKEY_CURRENT_USER. Затем при выборе какого-либо подраздела, в списке появляются его подразделы и так далее пока мы не доходим до ключей содержащих значения. При выборе одного из них значение записывается в lineedit.
Вот кусок кода для отображения разделов ветки реестра:
 
Код:
QSettings settings("HKEY_CURRENT_USER",QSettings::NativeFormat);
         QStringList keyList = settings.childGroups();
         for(int i=0;i<keyList.size();i++)
         {
            s2=keyList[i].toUtf8();
            ui->listWidget_2->addItem(s2);
         }
Разделы как и должны выводятся в listwidget. Затем при выборе одного из разделов ничего не происходит. Вот код:

Код:
void MainWindow::Next2()
{
    Nd=ui->listWidget_2->currentRow();
    QString s1,s2,s3;
    s1=ui->listWidget_2->item(Nd)->text();
    QSettings settings(s1,QSettings::NativeFormat);
    settings.beginGroup(s1);
    QStringList keyList = settings.allKeys();
    for(int i=0;i<keyList.size();i++)
    {
       s2=keyList[i].toUtf8();
       ui->listWidget_2->addItem(s2);
    }
}
Пробовал использовать childGroups() и childKeys(). Ничего в любом случае не выводится. В чем может быть проблема? И каковы альтернативы решения моей задачи? Заранее спасибо!
327
07 ноября 2014 года
UserNet2008
748 / / 03.04.2010
Не очень понятно это Next2().
 
Код:
void MainWindow::Next2()
Вам Нужно сделать события кнопаем-на-ветки примерно так

 
Код:
void MainWindow::on_listWidget_2_itemClicked(QListWidgetItem *item)
{
   QListWidgetItem *my_item=new QListWidgetItem;
  //ваш код
}
84K
08 ноября 2014 года
alexbo
5 / / 24.10.2014
Цитата: UserNet2008
Не очень понятно это Next2().
 
Код:
void MainWindow::Next2()
Вам Нужно сделать события кнопаем-на-ветки примерно так

 
Код:
void MainWindow::on_listWidget_2_itemClicked(QListWidgetItem *item)
{
   QListWidgetItem *my_item=new QListWidgetItem;
  //ваш код
}


Next2() это слот созданный специально для перехода при нажатии на строку листвиджета! Сигнал настроен через редактор визуальных форм - F4! Дело не в этом точно! Так как я делал это не один раз!)

327
08 ноября 2014 года
UserNet2008
748 / / 03.04.2010
Цитата:
Next2() это слот созданный специально для перехода при нажатии на строку листвиджета! Сигнал настроен через редактор визуальных форм - F4! Дело не в этом точно! Так как я делал это не один раз!)


Я не очень понимаю , об чём идёт разговор о каких-таких слотах, сигналах-F4
Повтор не буду делать. Для мня тема закрыта.
P/S
Вся-кую кухню повесили на С++ ввиде QSettings типа для ленивых. С++ может ВСЁ, чтобы раком поставить комп, а если этого мало, тогда C++ и ASSEMBLER типа рака-раком.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог