Conversation
a-badin
left a comment
There was a problem hiding this comment.
Фиксите изменения и сливайте в main
| Q_OBJECT | ||
|
|
||
| public: | ||
| explicit Brush(qreal brushSize = 10, const QColor& brushColor = Qt::red, QWidget *parent = nullptr); |
There was a problem hiding this comment.
несколько дефолтных значений - это не здорово. Если вы ходите изменить только parent, то первые жва придется продублировать. Оставляйте в параметрах конструктора только необходимое для создания объекта. Если пользователю будет нужно поменять размер - он вызовет сеттер
| private slots: | ||
| void BrushTriggeredSlot(); | ||
| private: | ||
| qreal brushSize; |
| ~Canvas() = default; | ||
|
|
||
| public slots: | ||
| void openImageSlot(); |
There was a problem hiding this comment.
слово slot писать в названии необьязательно, а вот параметры напрашиваются
|
|
||
|
|
||
| private: | ||
| QString filePath = nullptr; |
There was a problem hiding this comment.
QString с конструктором по-умолчанию, поэтому он вызовется автоматически. руками инициализровать не нужно
| ~Changer() = default; | ||
|
|
||
| private: | ||
| int _value; |
There was a problem hiding this comment.
Это не ошибка, но скорее правило хорошего тона, не создавать идентификаторы, которые начинаются с _
Это есть в книгах и есть в полном стандарте С++. Считается, что имена, которые начинаются с _ и которые содержат два __ зарезервированы для реализации стандартной библиотеки/компилятора/компоновщика
|
|
||
| QPoint previous_point; | ||
|
|
||
| std::vector<QPoint> curve; |
There was a problem hiding this comment.
зачем хранить кривую в сцене
|
|
||
| public slots: | ||
| void SetBrushSizeSlot(int value); | ||
| void SetBrushRedSlot(int value); |
There was a problem hiding this comment.
В Qt наверняка есть какая нибудь структура под цвет, чтобы сократить число сигналов и слотов в 3 раза
| Brush::Brush(qreal brushSize, const QColor& brushColor, QWidget *parent) : | ||
| brushSize(brushSize), brushColor(brushColor), QAction(parent) { | ||
| assert(parent != nullptr); | ||
| connect(this, &QAction::triggered, this, &Brush::BrushTriggeredSlot); |
There was a problem hiding this comment.
Можно связывать сигналы с сигналами, если нужно
| QGraphicsView(parent) { | ||
| } | ||
|
|
||
| void Canvas::openImageSlot() { |
There was a problem hiding this comment.
отпределено это не ответственность Canvas показывать диалог пользователю, скорее этот класс должен принимать QImage, причем он это делать кажется и так умеет. Логика выбора картинки должна быть где-то выше в MainWindows например
| this->setFixedWidth(size_label->width() + spin_box->width() + slider->width() + 20); | ||
| std::cout << size_label->width() << " " << spin_box->width() << " " << slider->width(); | ||
|
|
||
| connect(slider, QOverload<int>::of(&QSlider::valueChanged), this, |
No description provided.