fix: splitter ratio

This commit is contained in:
parker
2025-06-25 14:27:00 +01:00
parent 1b51d5ba20
commit 72ca5008b2
8 changed files with 47 additions and 7 deletions

View File

@@ -3,6 +3,7 @@
#include "gui/network/Network.h" #include "gui/network/Network.h"
#include <qpushbutton.h> #include <qpushbutton.h>
#include <qsplitter.h> #include <qsplitter.h>
#include <QTimer>
EnzoUI::EnzoUI() EnzoUI::EnzoUI()
{ {
@@ -12,16 +13,29 @@ EnzoUI::EnzoUI()
// title and size // title and size
setWindowTitle("Enzo"); setWindowTitle("Enzo");
setMinimumSize(1920/2, 1080/2); constexpr float scale = 0.8;
resize(1920*scale, 1080*scale);
Viewport* viewport = new Viewport(); Viewport* viewport = new Viewport();
Network* network = new Network(this); Network* network = new Network(this);
network->setMinimumWidth(400);
viewportSplitter_ = new QSplitter(this); viewportSplitter_ = new QSplitter(this);
viewportSplitter_->addWidget(viewport); viewportSplitter_->addWidget(viewport);
viewportSplitter_->addWidget(network); viewportSplitter_->addWidget(network);
// viewportSplitter_->addWidget(new QPushButton("hello world"));
viewportSplitter_->setStretchFactor(0, 10);
viewportSplitter_->setStretchFactor(1, 1);
mainLayout_->addWidget(viewportSplitter_); mainLayout_->addWidget(viewportSplitter_);
QTimer::singleShot(100, this, [=] {
std::cout << "Viewport size: " << viewport->width() << " x " << viewport->height() << std::endl;
std::cout << "Network size: " << network->width() << " x " << network->height() << std::endl;
});
} }

View File

@@ -19,6 +19,8 @@ Network::Network(QWidget* parent)
mainLayout_ = new QVBoxLayout(parent); mainLayout_ = new QVBoxLayout(parent);
mainLayout_->setContentsMargins(0,0,0,0); mainLayout_->setContentsMargins(0,0,0,0);
this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
this->setLayout(mainLayout_); this->setLayout(mainLayout_);

View File

@@ -18,6 +18,8 @@ public:
Network(QWidget* parent = nullptr); Network(QWidget* parent = nullptr);
void socketClicked(SocketGraphic* socket, QMouseEvent *event); void socketClicked(SocketGraphic* socket, QMouseEvent *event);
void mouseMoved(QMouseEvent *event); void mouseMoved(QMouseEvent *event);
QSize sizeHint() const override { return QSize(-1, -1); }
private: private:
QLayout* mainLayout_; QLayout* mainLayout_;
NetworkGraphicsScene* scene_; NetworkGraphicsScene* scene_;

View File

@@ -15,6 +15,7 @@ NetworkGraphicsView::NetworkGraphicsView(QWidget *parent, Network* network, QGra
{ {
setScene(scene_); setScene(scene_);
setMouseTracking(true); setMouseTracking(true);
this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
initUI(); initUI();

View File

@@ -11,6 +11,7 @@ class NetworkGraphicsView
{ {
public: public:
NetworkGraphicsView(QWidget *parent = nullptr, Network* network=nullptr, QGraphicsScene* scene = nullptr); NetworkGraphicsView(QWidget *parent = nullptr, Network* network=nullptr, QGraphicsScene* scene = nullptr);
QSize sizeHint() const override { return QSize(-1, -1); }
private: private:
QPointF panStartPos; QPointF panStartPos;
void initUI(); void initUI();

View File

@@ -2,6 +2,7 @@
#include <QTextDocument> #include <QTextDocument>
#include <iostream> #include <iostream>
#include <qgraphicsitem.h> #include <qgraphicsitem.h>
#include <qnamespace.h>
#include <stdexcept> #include <stdexcept>
#include <string> #include <string>
#include "gui/network/DisplayFlagButton.h" #include "gui/network/DisplayFlagButton.h"
@@ -135,11 +136,17 @@ QRectF NodeGraphic::boundingRect() const
void NodeGraphic::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) void NodeGraphic::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{ {
// default outline
QPen defaultPen = Qt::NoPen;
defaultPen.setWidth(1);
// outline when selected
QPen selectedPen = QPen("#edd044");
// choose outline
if(isSelected()) painter->setPen(selectedPen);
else painter->setPen(defaultPen);
// set fill
QBrush whiteBrush = QBrush("white"); QBrush whiteBrush = QBrush("white");
QPen greenPen = QPen(Qt::green);
greenPen.setWidth(6);
if(isSelected()) painter->setPen(QPen(QColor("#edd044")));
else painter->setPen(Qt::NoPen);
painter->setBrush(QBrush(QColor("#1b1b1b"))); painter->setBrush(QBrush(QColor("#1b1b1b")));
painter->drawRoundedRect(bodyRect_, 5, 5); painter->drawRoundedRect(bodyRect_, 5, 5);

View File

@@ -5,6 +5,7 @@ class MyGLWidget : public QOpenGLWidget
{ {
public: public:
MyGLWidget(QWidget *parent) : QOpenGLWidget(parent) { } MyGLWidget(QWidget *parent) : QOpenGLWidget(parent) { }
QSize sizeHint() const override { return QSize(-1, -1); }
protected: protected:
void initializeGL() override void initializeGL() override
@@ -14,6 +15,8 @@ protected:
f->glClearColor(0.16f, 0.16f, 0.16f, 1.0f); f->glClearColor(0.16f, 0.16f, 0.16f, 1.0f);
} }
void resizeGL(int w, int h) override void resizeGL(int w, int h) override
{ {
// // Update projection matrix and other size related settings: // // Update projection matrix and other size related settings:

View File

@@ -1,6 +1,8 @@
#include "gui/viewport/Viewport.h" #include "gui/viewport/Viewport.h"
#include <qboxlayout.h> #include <qboxlayout.h>
#include <qpushbutton.h> #include <qpushbutton.h>
#include <iostream>
#include <QTimer>
Viewport::Viewport(QWidget *parent, Qt::WindowFlags f) Viewport::Viewport(QWidget *parent, Qt::WindowFlags f)
: QWidget(parent, f) : QWidget(parent, f)
@@ -8,7 +10,15 @@ Viewport::Viewport(QWidget *parent, Qt::WindowFlags f)
mainLayout_=new QVBoxLayout(); mainLayout_=new QVBoxLayout();
openGLWidget_ = new MyGLWidget(this); openGLWidget_ = new MyGLWidget(this);
mainLayout_->addWidget(openGLWidget_); mainLayout_->addWidget(openGLWidget_);
openGLWidget_->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
// mainLayout_->addWidget(new QPushButton("hello world"));
this->setLayout(mainLayout_);
// this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
// QTimer::singleShot(100, this, [=] {
// std::cout << "MyGLWidget size: " << openGLWidget_->width() << " x " << openGLWidget_->height() << std::endl;
// });
setLayout(mainLayout_);
} }