88 lines
3.3 KiB
C++
88 lines
3.3 KiB
C++
#pragma once
|
|
|
|
#include <QMainWindow>
|
|
|
|
#include <random>
|
|
|
|
#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_;
|
|
};
|