#ifndef QUESTIONWIDGET_H #define QUESTIONWIDGET_H #include "base_widget.h" #include #include #include #include #include #include #include #include "../shared/backend_interface.h" class QuestionWidget : public BaseWidget { Q_OBJECT public: explicit QuestionWidget(exam_system::BackendInterface* backend, QWidget* parent = nullptr); void startTest(const QString& difficulty, int questionCount); signals: void testCompleted(const exam_system::TestResult& result); private slots: void onNextClicked(); void onSubmitClicked(); void onPrevClicked(); void onOptionSelected(); private: void setupUI() override; void showQuestion(int index); void updateProgress(); void updateButtonStates(); bool isCurrentQuestionAnswered(); std::vector questions_; std::vector user_answers_; int current_question_ = 0; QLabel* questionLabel; QLabel* progressLabel; QButtonGroup* optionGroup; QRadioButton* optionButtons[4]; QPushButton* nextBtn; QPushButton* prevBtn; QPushButton* submitBtn; }; #endif