#pragma once #include #include #include "model.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); void SetRandomGen(const std::mt19937& random_gen); private slots: // Очистить список void on_btn_clear_clicked(); // Добавить элеменит в начало списка void on_btn_push_front_clicked(); // Добавить элемент в конец списка void on_btn_push_back_clicked(); // Удалить элемент из начала списка void on_btn_pop_front_clicked(); // Удалить элемент из конца списка void on_btn_pop_back_clicked(); // Вставить элемент в список на определенную позицию void on_btn_insert_clicked(); // Удалить выбранный элемент void on_btn_erase_clicked(); // Перейти в начало списка void on_btn_begin_clicked(); // Перейти в конец списка void on_btn_end_clicked(); // Перейти на пердыдущий элемент void on_btn_dec_iterator_clicked(); // Перейти на следующий элемент списка void on_btn_inc_iterator_clicked(); // Событие обновляет список после изменения void on_list_widget_currentRowChanged(int currentRow); // Заполнение списка стандарными элементами (чай, торт) void on_btn_tea_clicked(); void on_btn_cakes_clicked(); // Изменить элемент списка void on_btn_edit_clicked(); // Изменить количество элементов в списке void on_btn_resize_clicked(); // Найти элемент в списке void on_btn_find_clicked(); // Отобразить количество элементов в спике void on_btn_count_clicked(); // Перейти к минимальному элементу void on_btn_min_element_clicked(); // Перейти к максимаьному элементу void on_btn_max_element_clicked(); // Сортировать список void on_btn_sort_clicked(); // Сортировать список void on_btn_sOrT_clicked(); // Применить рандомный void on_btn_shuffle_clicked(); // Удалить повторящиеся элементы void on_btn_unique_clicked(); // Перевернуть массив void on_btn_reverse_clicked(); // Поиск элементов меньше и больше заданного значения void on_btn_lower_bound_clicked(); void on_btn_upper_bound_clicked(); private: // Выводит на экран элементы списка с 0, устанавливает размер списка void ApplyModel(); // Выводит текущее полжение итератора, информацию об элементе void ApplyIterator(); private: Model deque_model_; Ui::MainWindow *ui; std::mt19937 m_random_gen_; };