crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Функция выполняется после завершения программы., Как решить эту проблему?
WinnieThePooh
  опции профиля:
сообщение 28.7.2012, 8:09
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 28.7.2012
Пользователь №: 3473

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




Репутация:   0  


Собственно, есть функция/метод которая почему-то выполняется в программе послее завершения, функция вызыватеся через слот присоеденненый к сигналу. Например, если привязать слот к кнопке и нажать на нее 5 раз, то ничего не прозойдет, но если закрыть все окна, эта функция выполнится 5 раз. Как решить эту проблему? Заранее спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 28.7.2012, 10:01
Сообщение #2


Активный участник
***

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

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




Репутация:   3  


Для начала неплохо бы показать исходный код.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
WinnieThePooh
  опции профиля:
сообщение 29.7.2012, 0:34
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 28.7.2012
Пользователь №: 3473

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




Репутация:   0  


Вызываю новое окошко в главном окне:
void MainWindow::on_actionAddUrl_activated()
{

   //f_addUrls* addUrl = new f_addUrls;
    f_addUrls addUrl;
   if ( addUrl.exec() )
   {

   }
}


В конструкторе нового окна:
 
ui->setupUi(this);
connect(ui->getUrls, SIGNAL(clicked()), this,SLOT(getUrls()));


Сама функция :
void f_addUrls::getUrls()
{
   UrlManager Urls;
   QList<QString> uList = Urls.readFromBuffer();
   QString strUrls=Urls.toQString(uList);
   std::cout<<"бла-бла";
   ui->UrlsBrowser->setText(strUrls);
}




Вот так работает нормально:
void f_addUrls::getUrls()
{
ui->UrlsBrowser->setText("бла-бла");
}


Может быть проблема возникает из-за этой функции:
QList<QString> UrlManager::readFromBuffer()
{
    QClipboard *clipboard = QApplication::clipboard();
    QString originalText = clipboard->text();
    QList<QString> uList;
    int j,i = 0;

         while ((j = originalText.indexOf("http", j)) != -1)
         {
             for(int d =0;d < 1; d++)
             {
                 i = originalText.indexOf("\n", j);
             //конец ссылки
              uList.push_back(originalText.mid(j,i-j));
             }
             ++i;
             ++j;
         }
return uList;
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.11.2024, 7:53