Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

K2rush

Алгоритм Qt (C++) хелп

Рекомендованные сообщения

Имеем такой виджет.

Сверху находится надпись1, чуть ниже прогресс бар, Ещё ниже лист с 5-ю значениями, которые checkable, и ниже всего этого безобразия кнопка "выполнить". При нажатии на кнопку, в надпись1 появляется значение из листа, которое было checked ну и прогресс бар ползёт, выполняется и переходит на следующую выделенную надпись и так до конца.(вроди нормально объяснил) Ну то есть как при любой установке.

 

Что я делаю.

Связываю кнопку с таймером, тамер со слотом который делает простую иттерацию, иттеративное значение с прогрусс баром.

Так вот, я пытаюсь использовать только один счётчик(не знаю верно или нет).

На иттеративную функцию вещаю условие, что если какое либо из из значений листа включенно, нужная надпись в надпись1, становится видимой, а по загрузке прогрусс бара так же становится невидимой(тут уже совсем не понятно, кодом дополню)

 

Проблем по моиму тут тьма, но самая явная, то что счётчик запускается в любом случае при нажатии кнопки, даже если выделенных элементов нет. ПРи попытке же выделить эти элементы сразу начинается загрузка прогресс бара, без нажатия кнопки. Пробывал вещать ограничения на счётчик, что он работает только при наличии включенных элементов, но н выходит((

.h

0562a2a30a82.jpg

38557f993235.jpg

 

 

public:

    Prep(QWidget *parent =0);

    QTimer *timer;

 

    QListWidgetItem *ListItem;

    QListWidgetItem *ListItem1;

    QListWidgetItem *ListItem2;

    QListWidgetItem *ListItem3;

    QListWidgetItem *ListItem4;

    int as;

 

private:

    int A;

 

 

public slots:

    void plus1();

 

    void itemClicked(QTreeWidgetItem *item, int column);

 

signals:

    void counterChanged(int);

 

.cpp

 

  setupUi(this);

    QTextCodec::setCodecForTr(QTextCodec::codecForName("System"));

 

    QLCDNumber *lcd = new QLCDNumber(2);

    lcd->show();

 

    timer = new QTimer(this);

 

    A=0;

 

    timer->setInterval(35);

    as=0;

    progressBar->setValue(as);

 

    label_15->hide();

    label_16->hide();

    label_17->hide();

    label_18->hide();

 

 

 

 

 

 

    connect(timer, SIGNAL(timeout()), this, SLOT(plus1()));

 

    connect(this, SIGNAL(counterChanged(int)),

            progressBar, SLOT(setValue(int)));

 

    connect(this, SIGNAL(counterChanged(int)),

            lcd, SLOT(display(int)));

 

 

    QTreeWidgetItem *TreeItem = new QTreeWidgetItem(treeWidget);

    TreeItem->setText(0, tr("Станция"));

    TreeItem->setIcon(0, QIcon(":/images/gray.bmp"));

    QTreeWidgetItem *TreeItem1 = new QTreeWidgetItem(TreeItem);

    TreeItem1->setText(0, tr("РП-330Б-РМ1(1)"));

    TreeItem1->setIcon(0, QIcon(":/images/gray.bmp"));

    QTreeWidgetItem *TreeItem2 = new QTreeWidgetItem(TreeItem);

    TreeItem2->setText(0, tr("РП-330Б-РМ1(2)"));

    TreeItem2->setIcon(0, QIcon(":/images/gray.bmp"));

    QTreeWidgetItem *TreeItem3 = new QTreeWidgetItem(TreeItem);

    TreeItem3->setText(0, tr("АП ДС1.2"));

    TreeItem3->setIcon(0, QIcon(":/images/gray.bmp"));

    QTreeWidgetItem *TreeItem4 = new QTreeWidgetItem(TreeItem);

    TreeItem4->setText(0, tr("УС14.1"));

    TreeItem4->setIcon(0, QIcon(":/images/gray.bmp"));

    QTreeWidgetItem *TreeItem5 = new QTreeWidgetItem(TreeItem);

    TreeItem5->setText(0, tr("КС-100"));

    TreeItem5->setIcon(0, QIcon(":/images/gray.bmp"));

    QTreeWidgetItem *TreeItem6 = new QTreeWidgetItem(TreeItem);

    TreeItem6->setText(0, tr("AR5000"));

    TreeItem6->setIcon(0, QIcon(":/images/gray.bmp"));

 

    connect(treeWidget, SIGNAL(itemClicked(QTreeWidgetItem*, int)),

            tab, SLOT(showNormal()));

 

    ListItem = new QListWidgetItem(listWidget_5);

    ListItem->setText(tr("Загрузить"));

    ListItem->setCheckState(Qt::Unchecked);

 

    ListItem1 = new QListWidgetItem(listWidget_5);

    ListItem1->setText(tr("Калибровать"));

    ListItem1->setCheckState(Qt::Unchecked);

 

    ListItem2 = new QListWidgetItem(listWidget_5);

    ListItem2->setText(tr("Загрузить блок БВ-УПСБ"));

    ListItem2->setCheckState(Qt::Unchecked);

 

    ListItem3 = new QListWidgetItem(listWidget_5);

    ListItem3->setText(tr("Провести тест"));

    ListItem3->setCheckState(Qt::Unchecked);

 

    ListItem4 = new QListWidgetItem(listWidget_5);

    ListItem4->setText(tr("Включить в конфиг"));

    ListItem4->setCheckState(Qt::Unchecked);

 

    if((ListItem->checkState()==Qt::Checked))// || (ListItem1->checkState()==Qt::Checked) || (ListItem2->checkState()==Qt::Checked) || (ListItem3->checkState()==Qt::Checked) || (ListItem4->checkState()==Qt::Checked))

    {

      // connect(pushButton, SIGNAL(clicked()),

        //      timer, SLOT(start()));

 

 

    }

 

 

 

 

 

 

 

}

 

 

 

void Prep::plus1()

{

 

    if(as==99)

    {

 

 

        if (A==1)

        {

        as=0;

        emit counterChanged(as);

 

        label_16->hide();

        ListItem->setCheckState(Qt::Unchecked);

 

        }

        if (A==2)

        {

        as=0;

        emit counterChanged(as);

        //timer->stop();

        label_15->hide();

 

        }

 

 

 

 

    }

    else{

        if(ListItem->checkState()==Qt::Checked)

 

        {

        label_15->show();

        emit counterChanged(++as);

        A=1;

        }

        if(ListItem->checkState()==Qt::Checked)

 

        {

            label_16->show();

            emit counterChanged(++as);

          A=2;

        }

        }

}

 

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...