#ifndef MAINWINDOW_H #define MAINWINDOW_H #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); void place (int r, int s, int i, int k); void setup (); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H #include "mainwindow.h" #include "ui_mainwindow.h" const int m = 8; const int n = 2*m+1; void MainWindow::place (int r, int s, int i, int k) { QTableWidgetItem * item = new QTableWidgetItem; ui->tableWidget->setItem (r, s, item); item->setText (QString::number (i)); QColor c = QColor::fromHsv ((k*45)%360, 255, 255); item->setBackgroundColor(c); } void MainWindow::setup () { ui->tableWidget->setColumnCount (n); ui->tableWidget->setRowCount (n); int h = ui->tableWidget->rowHeight (0) * 3 /2; for (int c = 0; ctableWidget->setColumnWidth (c, h); int i = 1; int r = m; // stred je (r,s), cislovany od 0 int s = m; place (r, s, i++, 1); // jednicka s++; for (int k = 2; k <= 2; k++) { int j; for (j = 1; j<=k; j++) place (r++, s, i++, k); // dolu r--; s--; for (j = 1; j<=2*k-2; j++) place (r, s--, i++, k); // vlevo s++; r--; for (j = 1; j<=2*k-2; j++) place (r--, s, i++, k); // nahoru r++; s++; for (j = 1; j<=2*k-2; j++) place (r, s++, i++, k); // vpravo s--;r++; for (j = 1; j<=k-2; j++) place (r, s++, i++, k); // dolu s++;r--; } for (int k = 3; k <= m+1; k++) { int j; for (j = 1; j<=2*k-2; j++) place (r++, s, i++, k); // dolu r--; s--; for (j = 1; j<=2*k-2; j++) place (r, s--, i++, k); // vlevo s++; r--; for (j = 1; j<=2*k-2; j++) place (r--, s, i++, k); // nahoru r++; s++; for (j = 1; j<=2*k-2; j++) place (r, s++, i++, k); // vpravo } } MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); setup (); } MainWindow::~MainWindow() { delete ui; }