На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
  
> Аналоги DoEvents() в qt
    Здравствуйте!
    Создал в Qt алгоритм сортировки, запускаемый QPushButton.
    При этом система подвисает секунд на 10. А хотелось бы чтобы не подвисала.
    В Visual Basic это реализуется через DoEvents();
    Есть ли что-либо подобное в библиотеке Qt? Чтобы можно было удобно избежать подвисания.
      Смотри класс QEventLoop.
        наверное, QApplication::processEvents()
        а лучше - в отдельном потоке
          Спасибо, друзья! попробую поискать исходнички на эту тему...
            Я реализовал это дело в своей проге так:
            ExpandedWrap disabled
              int main(int argc, char *argv[])
              {
                      QApplication app(argc, argv);
                  CalculatorForm calculator(5,10,&app);
                  calculator.show();
               
                  return app.exec();
              }

            Короче говоря, передал экземпляру класса CalculatorForm ссылку на QApplication
            В конструкторе класса CalculatorForm сложил полученную ссылку в private переменную QApplication *qapp. простым приравниванием qapp=app;
            A затем вызвал по этой ссылке process events в теле функции быстрой сортировки (функция член класса):
            ExpandedWrap disabled
              void CalculatorForm :: qsr(vector<ElementDbl> &item,int left,int right){
              //register
              int i,j;
              ElementDbl x,y;
              i=left;  j=right;
              vector<ElementDbl>::iterator pp;
              pp=item.begin();
              x=pp[(left+right)/2];
              //x.h[0]=3;
              do{
                  while(pp[i]<x && i<right)i++;
                  while(x<pp[j] && j>left)j--;
                  if(i<=j){
                      y=pp[i];
                      pp[i]=pp[j];
                      pp[j]=y;
                      i++;
                      j--;}
              }while(i<=j);
              qapp->processEvents(QEventLoop::ExcludeUserInputEvents);
              if(left<j)qsr(item,left,j);
              if(i<right)qsr(item,i,right);
              };


            Добавлено
            Ребят, подскажите как лучше в алгоритме быстрой сортировки организовать бегущую строку?

            Добавлено
            ... в смысле чтобы показывало скока процентов выполнено. Алгоритм нелинейный. Поэтому сразу непоймёшь...
            Сообщение отредактировано: MicroHard -
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0266 ]   [ 16 queries used ]   [ Generated: 2.05.24, 22:59 GMT ]