crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Работы с widget'ами
Evgeny
  опции профиля:
сообщение 19.6.2013, 21:44
Сообщение #1


Новичок


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

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




Репутация:   0  


Всем привет. Напоролся на такую задачку, никак не могу ее решить, может кто поскажет как выйти из ситуации. Задачка в следующем, есть форма на которой три виджета 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:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.6.2013, 5:11
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


сделай функцию членом класса Dialog
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Evgeny
  опции профиля:
сообщение 20.6.2013, 9:29
Сообщение #3


Новичок


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

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




Репутация:   0  


Спасибо, все получилось, как то я забыл про dialog.h :blush2:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.3.2024, 16:59