From 13c49262a6c372a38b7093283544008fadd85706 Mon Sep 17 00:00:00 2001 From: Peter M. Groen Date: Sat, 1 Oct 2022 16:17:20 +0200 Subject: [PATCH] Building the GUI --- .gitignore | 1 + CMakeLists.txt | 10 +++++++++- src/calcprime.h | 24 ++++++++++++++++++++++++ src/calcprime_form.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ src/calcprime_form.h | 27 +++++++++++++++++++++++++++ src/calcprime_form.ui | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main.cpp | 5 ++++- 7 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 src/calcprime_form.ui diff --git a/.gitignore b/.gitignore index 0bad061..316cde0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /build/ /submodules/ +/CMakeLists.txt.user diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ed1226..40c2cdb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,12 +23,20 @@ include_directories( SYSTEM include(compiler) set(SRC_LIST + ${CMAKE_SOURCE_DIR}/src/calcprime.cpp + ${CMAKE_SOURCE_DIR}/src/calcprime_form.cpp ${CMAKE_SOURCE_DIR}/src/main.cpp ) +include(qtuic) +create_ui( SRC_LIST UIC_LIST + ${CMAKE_SOURCE_DIR}/src/calcprime_form.ui +) + include(qtmoc) create_mocs( SRC_LIST MOC_LIST - # ${CMAKE_SOURCE_DIR}/ + ${CMAKE_SOURCE_DIR}/src/calcprime.h + ${CMAKE_SOURCE_DIR}/src/calcprime_form.h ) add_executable( ${PROJECT_NAME} diff --git a/src/calcprime.h b/src/calcprime.h index e69de29..ce3f30c 100644 --- a/src/calcprime.h +++ b/src/calcprime.h @@ -0,0 +1,24 @@ +#pragma once + +#include "calcprime_form.h" +#include + +class CalcPrime : public QObject +{ + Q_OBJECT + +public: + explicit CalcPrime(QObject *parent = nullptr); + +private: + bool m_bCalculate; + uint64_t m_curValue; + +signals: + void signalCurrentValue( uint64_t current_value ); + void signalPrimeNumberFound( uint64_t prime_number ); + +private slots: + void slotStartCalculation(); + void slotStopCalculation(); +}; diff --git a/src/calcprime_form.cpp b/src/calcprime_form.cpp index e69de29..d22e9bb 100644 --- a/src/calcprime_form.cpp +++ b/src/calcprime_form.cpp @@ -0,0 +1,41 @@ +#include "calcprime_form.h" + +#include +#include + +CalcPrimeForm::CalcPrimeForm(QWidget *parent) + : QWidget(parent) +{ + setupUi(this); + connectSignalsAndSlots(); +} + +void CalcPrimeForm::connectSignalsAndSlots() +{ + connect( this->cmdStartButton, &QPushButton::clicked, this, &CalcPrimeForm::slotStartButtonClicked ); + connect( this->cmdStopButton, &QPushButton::clicked, this, &CalcPrimeForm::slotStopButtonClicked ); +} + +void CalcPrimeForm::slotUpdateCurrentValue( uint64_t value ) +{ + this->currentValue->display( QString( std::to_string( value ).c_str() ) ); +} + +void CalcPrimeForm::slotAddNewPrime( uint64_t new_prime ) +{ + this->listPrimes->addItem(QString( std::to_string( new_prime ).c_str() )); +} + +void CalcPrimeForm::slotStartButtonClicked() +{ + this->cmdStartButton->setDisabled(true); + this->cmdStopButton->setDisabled(false); + emit signalStartButtonClicked(); +} + +void CalcPrimeForm::slotStopButtonClicked() +{ + this->cmdStopButton->setDisabled(true); + this->cmdStartButton->setDisabled(false); + emit signalStopButtonClicked(); +} diff --git a/src/calcprime_form.h b/src/calcprime_form.h index e69de29..aff44d8 100644 --- a/src/calcprime_form.h +++ b/src/calcprime_form.h @@ -0,0 +1,27 @@ + +#pragma once + +#include "ui_calcprime_form.h" + +class CalcPrimeForm : public QWidget, private Ui::wdgPrimeGui +{ + Q_OBJECT + +public: + explicit CalcPrimeForm(QWidget *parent = nullptr); + +private: + void connectSignalsAndSlots(); + +signals: + void signalStartButtonClicked(); + void signalStopButtonClicked(); + +public slots: + void slotUpdateCurrentValue( uint64_t value ); + void slotAddNewPrime( uint64_t new_prime ); + +private slots: + void slotStartButtonClicked(); + void slotStopButtonClicked(); +}; diff --git a/src/calcprime_form.ui b/src/calcprime_form.ui new file mode 100644 index 0000000..ef2e00e --- /dev/null +++ b/src/calcprime_form.ui @@ -0,0 +1,66 @@ + + + wdgPrimeGui + + + + 0 + 0 + 1373 + 393 + + + + Calculate Primenumbers + + + + + + + + 30 + + + + + + + + + + + + Start + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Stop + + + + + + + + + + + + diff --git a/src/main.cpp b/src/main.cpp index d0f81d4..f179134 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,10 +1,13 @@ #include +#include "calcprime_form.h" + int main( int argc, char* argv[] ) { QApplication oApp( argc, argv ); - + CalcPrimeForm oForm; + oForm.show(); oApp.exec(); } -- libgit2 0.21.4