7#include "../include/mainwindow.h"
9MainWindow::MainWindow()
11 QMenu *fileMenu =
new QMenu(tr(
"&File"));
13 QAction *quitAction = fileMenu->addAction(tr(
"E&xit"));
14 quitAction->setShortcut(tr(
"Ctrl+Q"));
16 QMenu *itemsMenu =
new QMenu(tr(
"&Items"));
18 QAction *sumItemsAction = itemsMenu->addAction(tr(
"&Sum Items"));
19 QAction *averageItemsAction = itemsMenu->addAction(tr(
"&Average Items"));
21 menuBar()->addMenu(fileMenu);
22 menuBar()->addMenu(itemsMenu);
25 tableWidget =
new QTableWidget(12, 3,
this);
27 tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
30 QTableWidgetItem *valuesHeaderItem =
new QTableWidgetItem(tr(
"Values"));
31 tableWidget->setHorizontalHeaderItem(0, valuesHeaderItem);
34 valuesHeaderItem->setTextAlignment(Qt::AlignVCenter);
35 QTableWidgetItem *squaresHeaderItem =
new QTableWidgetItem(tr(
"Squares"));
36 squaresHeaderItem->setIcon(QIcon(QPixmap(
":/Images/squared.png")));
37 squaresHeaderItem->setTextAlignment(Qt::AlignVCenter);
40 QTableWidgetItem *cubesHeaderItem =
new QTableWidgetItem(tr(
"Cubes"));
41 cubesHeaderItem->setIcon(QIcon(QPixmap(
":/Images/cubed.png")));
42 cubesHeaderItem->setTextAlignment(Qt::AlignVCenter);
45 tableWidget->setHorizontalHeaderItem(1, squaresHeaderItem);
46 tableWidget->setHorizontalHeaderItem(2, cubesHeaderItem);
48 connect(quitAction, &QAction::triggered,
this, &QWidget::close);
49 connect(sumItemsAction, &QAction::triggered,
this, &MainWindow::sumItems);
50 connect(averageItemsAction, &QAction::triggered,
this, &MainWindow::averageItems);
54 setCentralWidget(tableWidget);
55 setWindowTitle(tr(
"Table Widget"));
60 for (
int row = 0; row < tableWidget->rowCount()-1; ++row) {
61 for (
int column = 0; column < tableWidget->columnCount(); ++column) {
63 QTableWidgetItem *newItem =
new QTableWidgetItem(tr(
"%1").arg(
65 tableWidget->setItem(row, column, newItem);
69 for (
int column = 0; column < tableWidget->columnCount(); ++column) {
70 QTableWidgetItem *newItem =
new QTableWidgetItem;
71 newItem->setFlags(Qt::ItemIsEnabled);
72 tableWidget->setItem(tableWidget->rowCount()-1, column, newItem);
78 const QList<QTableWidgetItem *> selected = tableWidget->selectedItems();
82 for (QTableWidgetItem *item : selected) {
84 double value = item->text().toDouble(&ok);
86 if (ok && !item->text().isEmpty()) {
92 tableWidget->currentItem()->setText(QString::number(total/number));
98 const QList<QTableWidgetItem *> selected = tableWidget->selectedItems();
102 for (QTableWidgetItem *item : selected) {
104 double value = item->text().toDouble(&ok);
106 if (ok && !item->text().isEmpty()) {
113 tableWidget->currentItem()->setText(QString::number(total));