//header:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTreeWidget>
#include <QDateEdit>
#include <QPushButton>
#include <QGridLayout>
#include <QMessageBox>
{
Q_OBJECT
public:
MainWindow();
private slots:
void buttonPressed();
void button2Pressed();
void sortTree();
private:
QList<QTreeWidgetItem*> itemList;
};
#endif // MAINWINDOW_H
//main c++ file
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
MainWindow w;
w.show();
return a.exec();
}
//mainwindow c++ file
#include "mainwindow.h"
#include <iostream>
#include <QtGui>
using namespace std;
QList<QDate> sortedDate;
QList<QDate> regDate;
QList<QTime> time;
QMap<int, int> sortedOrder;
int timeCount = 0;
int dateCount = 0;
MainWindow::MainWindow()
{
button->setText("AddDate");
button2->setText("AddTime");
sort->setText("sort");
dateEdit
->setDate
(QDate::currentDate());
timeEdit
->setTime
(QTime::currentTime());
connect(button,SIGNAL(clicked()),
this,SLOT(buttonPressed()));
connect(button2,SIGNAL(clicked()),
this,SLOT(button2Pressed()));
connect(sort,SIGNAL(clicked()),
this, SLOT(sortTree()));
treeWidget->setColumnCount(2);
layout->addWidget(treeWidget,0,0);
layout->addWidget(dateEdit,1,0);
layout->addWidget(timeEdit,2,0);
layout->addWidget(button,1,1);
layout->addWidget(button2,2,1);
layout->addWidget(sort, 0, 1,Qt::AlignBottom);
widget->setLayout(layout);
setCentralWidget(widget);
}
void MainWindow::buttonPressed(){
regDate << dateEdit->date();
sortedDate << regDate[dateCount];
itemList << item;
itemList[dateCount]->setText(0, regDate[dateCount].toString("MMMM dd, yyyy"));
dateCount++;
}
void MainWindow::button2Pressed(){
if(timeCount < dateCount){
time.removeAt(dateCount-1);
time.insert(dateCount-1,timeEdit->time());
itemList[dateCount-1]->setText(1, time[dateCount-1].toString("h:mm AP"));
timeCount++;
} else if(timeCount == dateCount){
time.removeAt(dateCount-1);
time.insert(dateCount-1,timeEdit->time());
itemList[dateCount-1]->setText(1, time[dateCount-1].toString("h:mm AP"));
}
}
void MainWindow::sortTree(){
if(dateCount == timeCount){
qSort(sortedDate.begin(),sortedDate.end());
for(int i = 0; i<regDate.size(); i++){
sortedOrder[i] = sortedDate.indexOf(regDate[i]);
}
treeWidget->clear();
for(int i = 0; i<dateCount; i++){
itemList[i]->setText(0, sortedDate[i].toString("MMMM dd, yyyy"));
itemList[i]->setText(1, time[sortedOrder.key(i)].toString("h:mm AP"));
}
} else {
error.exec();
}
}}
//header:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTreeWidget>
#include <QDateEdit>
#include <QPushButton>
#include <QGridLayout>
#include <QMessageBox>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();
private slots:
void buttonPressed();
void button2Pressed();
void sortTree();
private:
QTreeWidget *treeWidget;
QList<QTreeWidgetItem*> itemList;
QTreeWidgetItem *item;
QDateEdit *dateEdit;
QTimeEdit *timeEdit;
QPushButton *button, *button2, *sort;
QWidget *widget;
QGridLayout *layout;
};
#endif // MAINWINDOW_H
//main c++ file
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
//mainwindow c++ file
#include "mainwindow.h"
#include <iostream>
#include <QtGui>
using namespace std;
QList<QDate> sortedDate;
QList<QDate> regDate;
QList<QTime> time;
QMap<int, int> sortedOrder;
int timeCount = 0;
int dateCount = 0;
MainWindow::MainWindow()
{
layout = new QGridLayout;
dateEdit = new QDateEdit;
timeEdit = new QTimeEdit;
button = new QPushButton;
button2 = new QPushButton;
sort = new QPushButton;
widget = new QWidget;
button->setText("AddDate");
button2->setText("AddTime");
sort->setText("sort");
dateEdit->setDate(QDate::currentDate());
timeEdit->setTime(QTime::currentTime());
connect(button,SIGNAL(clicked()),
this,SLOT(buttonPressed()));
connect(button2,SIGNAL(clicked()),
this,SLOT(button2Pressed()));
connect(sort,SIGNAL(clicked()),
this, SLOT(sortTree()));
treeWidget = new QTreeWidget;
treeWidget->setColumnCount(2);
layout->addWidget(treeWidget,0,0);
layout->addWidget(dateEdit,1,0);
layout->addWidget(timeEdit,2,0);
layout->addWidget(button,1,1);
layout->addWidget(button2,2,1);
layout->addWidget(sort, 0, 1,Qt::AlignBottom);
widget->setLayout(layout);
setCentralWidget(widget);
}
void MainWindow::buttonPressed(){
regDate << dateEdit->date();
sortedDate << regDate[dateCount];
item = new QTreeWidgetItem(treeWidget);
itemList << item;
itemList[dateCount]->setText(0, regDate[dateCount].toString("MMMM dd, yyyy"));
dateCount++;
}
void MainWindow::button2Pressed(){
if(timeCount < dateCount){
time.removeAt(dateCount-1);
time.insert(dateCount-1,timeEdit->time());
itemList[dateCount-1]->setText(1, time[dateCount-1].toString("h:mm AP"));
timeCount++;
} else if(timeCount == dateCount){
time.removeAt(dateCount-1);
time.insert(dateCount-1,timeEdit->time());
itemList[dateCount-1]->setText(1, time[dateCount-1].toString("h:mm AP"));
}
}
void MainWindow::sortTree(){
if(dateCount == timeCount){
qSort(sortedDate.begin(),sortedDate.end());
for(int i = 0; i<regDate.size(); i++){
sortedOrder[i] = sortedDate.indexOf(regDate[i]);
}
treeWidget->clear();
for(int i = 0; i<dateCount; i++){
itemList[i] = new QTreeWidgetItem(treeWidget);
itemList[i]->setText(0, sortedDate[i].toString("MMMM dd, yyyy"));
itemList[i]->setText(1, time[sortedOrder.key(i)].toString("h:mm AP"));
}
} else {
QMessageBox error(QMessageBox::Warning, "ERROR", "Missing Date or Time.");
error.exec();
}
}}
To copy to clipboard, switch view to plain text mode
Bookmarks