новый файл: CMakeLists.txt
новый файл: shell.nix новый файл: src/MainWindow.cpp новый файл: src/MainWindow.h новый файл: src/items/ArrowItem.cpp новый файл: src/items/ArrowItem.h новый файл: src/items/BlockItem.cpp новый файл: src/items/BlockItem.h новый файл: src/items/DiagramScene.cpp новый файл: src/items/DiagramScene.h новый файл: src/items/JunctionItem.cpp новый файл: src/items/JunctionItem.h новый файл: src/main.cpp изменено: src/items/ArrowItem.cpp изменено: src/items/ArrowItem.h изменено: src/items/BlockItem.h изменено: src/items/DiagramScene.cpp изменено: src/items/DiagramScene.h
This commit is contained in:
commit
53afa3f728
87 changed files with 48249 additions and 0 deletions
39
src/MainWindow.cpp
Normal file
39
src/MainWindow.cpp
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
#include "MainWindow.h"
|
||||
#include "items/DiagramScene.h"
|
||||
|
||||
#include <QGraphicsView>
|
||||
#include <QToolBar>
|
||||
#include <QAction>
|
||||
#include <QStatusBar>
|
||||
|
||||
MainWindow::MainWindow(QWidget* parent)
|
||||
: QMainWindow(parent)
|
||||
{
|
||||
setupUi();
|
||||
setupActions();
|
||||
statusBar()->showMessage("RMB: add block. LMB on port: drag arrow. Double click block: rename.");
|
||||
}
|
||||
|
||||
void MainWindow::setupUi() {
|
||||
m_scene = new DiagramScene(this);
|
||||
m_view = new QGraphicsView(m_scene, this);
|
||||
m_view->setRenderHint(QPainter::Antialiasing, true);
|
||||
m_view->setDragMode(QGraphicsView::RubberBandDrag);
|
||||
// Полное обновление избавляет от графических артефактов во время drag временной стрелки.
|
||||
m_view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
|
||||
|
||||
setCentralWidget(m_view);
|
||||
|
||||
// стартовые блоки
|
||||
m_scene->createBlockAt(QPointF(-200, -50))->setPos(-300, -150);
|
||||
m_scene->createBlockAt(QPointF(200, -50))->setPos(200, -150);
|
||||
}
|
||||
|
||||
void MainWindow::setupActions() {
|
||||
auto* tb = addToolBar("Tools");
|
||||
auto* actFit = new QAction("Fit", this);
|
||||
connect(actFit, &QAction::triggered, this, [this]{
|
||||
m_view->fitInView(m_scene->itemsBoundingRect().adjusted(-50,-50,50,50), Qt::KeepAspectRatio);
|
||||
});
|
||||
tb->addAction(actFit);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue