Task for adjusting

//taskwidget.h
#ifndef TASKWIDGET_H
#define TASKWIDGET_H

#include
#include "ui_taskwidget.h"
#include
enum{TASK_START,TASK_PAUSE,TASK_TOP};
class TaskWidget : public QWidget
{
Q_OBJECT

public:
TaskWidget(QWidget *parent = 0);
~TaskWidget();

public:
void startProgressBar();
void pauseProgressBar();
void stopProgressBar();
int getTaskStatus();
private:
Ui::TaskWidgetClass ui;
QTimer *timer;
int int_progress;
int int_status;
private slots:
void timerStart();
};

#endif // TASKWIDGET_H
/
//taskwidget.cpp
#include "taskwidget.h"

#define TIMER_SPEED 100
TaskWidget::TaskWidget(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
timer = new QTimer(this);
int_progress = 0;
connect(timer, SIGNAL(timeout()), this, SLOT(timerStart()));
ui.progressBar->setMaximum(100);
}

TaskWidget::~TaskWidget()
{
}

void TaskWidget::startProgressBar()
{
ui.label->setText(tr("Starting..."));
timer->start(TIMER_SPEED);
int_status = TASK_START;
}
void TaskWidget::pauseProgressBar()
{
ui.label->setText(tr("Pauseing..."));
timer->stop();
int_status = TASK_PAUSE;
}
void TaskWidget::stopProgressBar()
{
ui.label->setText(tr("Stoping..."));
timer->stop();
int_progress = 0;
int_status = TASK_TOP;
}

int TaskWidget::getTaskStatus()
{
return int_status;
}

void TaskWidget::timerStart()
{
if(int_progress < 100)
{
int_progress ++;
}
else
{
int_progress = 0;
}
ui.progressBar->setValue(int_progress);
}

//qttaskcount.cpp
#include "qttaskcount.h"
#include
#include "taskwidget.h"

#define TASK_DEFALT_COUNT 5
QtTaskCount::QtTaskCount(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
ui.taskCountSpinBox->setValue(TASK_DEFALT_COUNT);
taskCount = ui.taskCountSpinBox->value();
connect(ui.taskCountSpinBox, SIGNAL(valueChanged(int)), this, SLOT(spinboxValueChanged(int)));
}

QtTaskCount::~QtTaskCount()
{

}

void QtTaskCount::on_addTaskBtn_clicked()
{
//void QTreeWidget::setItemWidget ( QTreeWidgetItem * item, int column, QWidget * widget )
addTask();
}

void QtTaskCount::addTask()
{
TaskWidget *taskWidget = new TaskWidget();
QListWidgetItem *item = new QListWidgetItem();
ui.listWidget->addItem(item);
item->setSizeHint(taskWidget->size());
ui.listWidget->setItemWidget(item,taskWidget);
if (initializeAddTask())
{
taskWidget->startProgressBar();
startTaskWidgetList.append(taskWidget);
}
else
{
taskWidget->pauseProgressBar();
pauseTaskWidgetList.append(taskWidget);
}
allTaskWidgetList.append(taskWidget);
refreshCountShow();
}

void QtTaskCount::startSelectedTask()
{
getSelectedTaskWidget()->startProgressBar();
}

void QtTaskCount::pauseSelectedTask()
{
getSelectedTaskWidget()->pauseProgressBar();
}

void QtTaskCount::stopSelectedTask()
{
getSelectedTaskWidget()->stopProgressBar();
}

TaskWidget* QtTaskCount::getSelectedTaskWidget()
{
QList list = ui.listWidget->QListWidget::selectedItems();
TaskWidget * taskwidget = (TaskWidget*)ui.listWidget->itemWidget(list[0]);
return taskwidget;
}

bool QtTaskCount::initializeAddTask()
{
if (getStartTaskCount() < taskCount)
{
return true;
}
else
{
return false;
}
}

int QtTaskCount::getAllTaskCount()
{
return allTaskWidgetList.count();
}

int QtTaskCount::getStartTaskCount()
{
return startTaskWidgetList.count();
}

int QtTaskCount::getPauseTaskCount()
{
return pauseTaskWidgetList.count();
}

int QtTaskCount::getStopTaskCount()
{
return stopTaskWidgetList.count();
}

void QtTaskCount::taskListRemoveAtTask()
{
int taskStatus = getSelectedTaskWidget()->getTaskStatus();
switch (taskStatus)
{
case TASK_START:
{
startTaskWidgetList.removeAt(startTaskWidgetList.indexOf(getSelectedTaskWidget()));
break;
}
case TASK_PAUSE:
{
pauseTaskWidgetList.removeAt(pauseTaskWidgetList.indexOf(getSelectedTaskWidget()));
break;
}
case TASK_TOP:
{
stopTaskWidgetList.removeAt(stopTaskWidgetList.indexOf(getSelectedTaskWidget()));
break;
}
}
}

void QtTaskCount::on_pauseTaskBtn_clicked()
{
taskListRemoveAtTask();
pauseSelectedTask();
pauseTaskWidgetList.append(getSelectedTaskWidget());
refreshCountShow();
}

void QtTaskCount::on_startTaskBtn_clicked()
{
if (initializeAddTask())
{
taskListRemoveAtTask();
startSelectedTask();
startTaskWidgetList.append(getSelectedTaskWidget());
}
refreshCountShow();
}

void QtTaskCount::on_stopTaskBtn_clicked()
{
taskListRemoveAtTask();
stopSelectedTask();
stopTaskWidgetList.append(getSelectedTaskWidget());
refreshCountShow();
}

void QtTaskCount::refreshCountShow()
{
ui.startTaskCountlb->setText(QString::number(getStartTaskCount()));
ui.pauseTaskCountlb->setText(QString::number(getPauseTaskCount()));
ui.stopTaskCountlb->setText(QString::number(getStopTaskCount()));
ui.allTaskCountlb->setText(QString::number(getAllTaskCount()));
}

void QtTaskCount::spinboxValueChanged(int int_value)
{
if (taskCount > int_value)
{
if (int_value < 0)
{
return;
}
int subTaskCount = taskCount - int_value;
int startTaskCount = startTaskWidgetList.count() - 1;
if (startTaskCount == -1)
{
ui.taskCountSpinBox->setValue(taskCount);
return;
}
for (int i = 0;ipauseProgressBar();
pauseTaskWidgetList.append(startTaskWidgetList[startTaskCount]);
startTaskWidgetList.removeAt(startTaskCount);
startTaskCount--;
}
}
else
{
int subTaskCount = int_value - taskCount;
int pauseTaskCount = pauseTaskWidgetList.count() - 1;
if (pauseTaskCount == -1)
{
ui.taskCountSpinBox->setValue(taskCount);
return;
}
for (int i = 0;istartProgressBar();
startTaskWidgetList.append(pauseTaskWidgetList[pauseTaskCount]);
pauseTaskWidgetList.removeAt(pauseTaskCount);
pauseTaskCount--;
}
}
taskCount = int_value;
refreshCountShow();
}
//
//qttaskcount.h
#ifndef QTTASKCOUNT_H
#define QTTASKCOUNT_H

#include
#include "ui_qttaskcount.h"
#include "taskwidget.h"
#include

class TaskWidget;
class QListWidgetItem;
class QtTaskCount : public QMainWindow
{
Q_OBJECT

public:
QtTaskCount(QWidget *parent = 0, Qt::WFlags flags = 0);
~QtTaskCount();

private:
Ui::QtTaskCountClass ui;
QList allTaskWidgetList;
QList startTaskWidgetList;
QList pauseTaskWidgetList;
QList stopTaskWidgetList;

int getAllTaskCount();
int getStartTaskCount();
int getPauseTaskCount();
int getStopTaskCount();

TaskWidget* getSelectedTaskWidget();
void addTask();
void startSelectedTask();
void pauseSelectedTask();
void stopSelectedTask();
bool initializeAddTask();
void taskListRemoveAtTask();
void refreshCountShow();

int taskCount;

private slots:
void on_stopTaskBtn_clicked();
void on_startTaskBtn_clicked();
void on_pauseTaskBtn_clicked();
void on_addTaskBtn_clicked();
void spinboxValueChanged(int int_value);
};

#endif // QTTASKCOUNT_H

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值