crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Сигнал из цикла
Max Payne
  опции профиля:
сообщение 7.5.2012, 2:51
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 24
Регистрация: 16.2.2012
Пользователь №: 3223

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем привет, извините за тривиальный вопрос, но никак не могу понять.
Есть цыкл в котором обрабатывается стринги, мне нужно каждую итерацию отправлять стринг через сигнал из цыкла, сделал все просто емит из цикла но приходит только один стринг и ничего больше. Я в чем то ошибся ? Спасибо за помощь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 7.5.2012, 5:25
Сообщение #2





Гости








    


Цитата(Max Payne @ 7.5.2012, 2:51) *
Всем привет, извините за тривиальный вопрос, но никак не могу понять.
Есть цыкл в котором обрабатывается стринги, мне нужно каждую итерацию отправлять стринг через сигнал из цыкла, сделал все просто емит из цикла но приходит только один стринг и ничего больше. Я в чем то ошибся ? Спасибо за помощь.


Внутри цикла напиши qDebug()<<"Попал" и посмотри сколько раз выведет это слово в консоль , я просто думаю там один элемент => один вызов , или же ты где то делаешь disconnect сигн.слот после первого попадания
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Max Payne
  опции профиля:
сообщение 7.5.2012, 11:08
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 24
Регистрация: 16.2.2012
Пользователь №: 3223

Спасибо сказали: 0 раз(а)




Репутация:   0  


Попадаю, цикл выполняется и итераций больше чем 1 :


Циклы где отсылается сигнал :
do
        {
            vlad newV;
            QSqlRecord rec = read.record();
            newV.ID_Owner=rec.field("ID_Owner").value().toInt();
            newV.Vlad = rec.field("Владелец").value().toString();
            newV.Address = rec.field("Адрес").value().toString();
            newV.Num_Phone = rec.field("Телефон").value().toString();
            newV.Club = rec.field("Клуб").value().toString();
            newV.email = rec.field("e-mail").value().toString();
            newV.pitom = rec.field("Питомник").value().toString();
            emit this->progDownString(newV.Vlad);
            crVlad.append(newV);
        }
        while (read.next());
        qw_4.finish();

        QSqlQuery write (dbSql);
        write.exec("create table Владелец (ID_Owner INTEGER PRIMARY KEY NOT NULL,"
                   "Владелец VARCHAR (64) NOT NULL,"
                   "Адресс VARCHAR (256),"
                   "Телефон VARCHAR (32),"
                   "Клуб VARCHAR (32) NOT NULL,"
                   "email VARCHAR (64),"
                   "Питомник VARCHAR (128),"
                   "constraint Vl_fk FOREIGN KEY (ID_Owner)references Animals (ID_Owner) on update cascade on delete cascade)");
        for (int i = 0; i < crVlad.size(); i++)
        {
            if(!write.prepare("insert into Владелец (ID_Owner,Владелец, Адресс, Телефон, Клуб, email, Питомник)"
                              " values (:qr,:wr,:er,:r,:t,:y,:u)"))
            {
                QMessageBox::critical(this,tr ("Ошибка 003"), tr (" Невозможно добавить запись в таблицу 'Владелец' .").append(dbSql.lastError().text()));
                break;
            }
            write.bindValue(":qr",crVlad.at(i).ID_Owner);
            write.bindValue(":wr",crVlad.at(i).Vlad);
            write.bindValue(":er",crVlad.at(i).Address);
            write.bindValue(":r",crVlad.at(i).Num_Phone);
            write.bindValue(":t",crVlad.at(i).Club);
            write.bindValue(":y",crVlad.at(i).email);
            write.bindValue(":u",crVlad.at(i).pitom);
            emit this->progDownString(crVlad.at(i).Vlad);
            write.exec();

        }

Вот сам обьект QProgressBar

bar = new Prog_bar(this);

    connect (this, SIGNAL(progDownString(QString)), bar, SLOT(set_down_label(QString)),Qt::DirectConnection);
    connect(this, SIGNAL(progUpString(QString)), bar, SLOT(set_upLabel(QString)),Qt::DirectConnection);
    connect (this, SIGNAL(progValPerCent(int)), bar, SLOT(set_prog_value(int)),Qt::DirectConnection);

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
efg
  опции профиля:
сообщение 17.6.2012, 2:07
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 6.5.2011
Пользователь №: 2658

Спасибо сказали: 2 раз(а)




Репутация:   0  


добавьте после эмита qApp->processEvents();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.4.2024, 22:39