crossplatform.ru

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


  Ответ в Работы с widget'ами
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Evgeny Дата 20.6.2013, 9:29
  Спасибо, все получилось, как то я забыл про dialog.h :blush2:
Litkevich Yuriy Дата 20.6.2013, 5:11
  сделай функцию членом класса Dialog
Evgeny Дата 19.6.2013, 21:44
  Всем привет. Напоролся на такую задачку, никак не могу ее решить, может кто поскажет как выйти из ситуации. Задачка в следующем, есть форма на которой три виджета progressbar, buttuon2, button3. При нажатии на кнопку2 бар заполняется на 100, при нажатии на кнопку3, бар сползает до 0.

Код:
void Dialog::on_pushButton_2_clicked()
{
    bool fDir = true;
    int i= ui->progressBar->value();
    do{
      ui->progressBar->setValue(i);
      if(fDir == true){
          i++;
      }
      else i--;

    } while (i >=0 && i <=100);
}

void Dialog::on_pushButton_3_clicked()
{
    bool fDir = false;
    int i= ui->progressBar->value();
    do{
      ui->progressBar->setValue(i);
      if(fDir == true){
          i++;
      }
      else i--;
    } while (i >=0 && i <=100);
}


Это работает, но хочется сделать правильно, а значит часть заполняющая бар должна вызыватся как фукнция, агрументом котрой являяется флаг. Проблема в том что если вынести вот так:
void aBar(bool &fDir)
{
    int i= ui->progressBar->value();
    do{
      ui->progressBar->setValue(i);
      if(fDir == true){
          i++;
      }
      else i--;

    } while (i >=0 && i <=100);
}

То работать уже не будет. Вопрос как протащить ui в этот void? Задача, естественно в чисто образовательных целях :rolleyes:
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.4.2024, 23:15