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 <qpushbutton.h>
#include <qsplitter.h>
#include <QTimer>
EnzoUI::EnzoUI()
{
@@ -12,16 +13,29 @@ EnzoUI::EnzoUI()
// title and size
setWindowTitle("Enzo");
setMinimumSize(1920/2, 1080/2);
constexpr float scale = 0.8;
resize(1920*scale, 1080*scale);
Viewport* viewport = new Viewport();
Network* network = new Network(this);
network->setMinimumWidth(400);
viewportSplitter_ = new QSplitter(this);
viewportSplitter_->addWidget(viewport);
viewportSplitter_->addWidget(network);
// viewportSplitter_->addWidget(new QPushButton("hello world"));
viewportSplitter_->setStretchFactor(0, 10);
viewportSplitter_->setStretchFactor(1, 1);
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_->setContentsMargins(0,0,0,0);
this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
this->setLayout(mainLayout_);

View File

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

View File

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

View File

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

View File

@@ -2,6 +2,7 @@
#include <QTextDocument>
#include <iostream>
#include <qgraphicsitem.h>
#include <qnamespace.h>
#include <stdexcept>
#include <string>
#include "gui/network/DisplayFlagButton.h"
@@ -135,11 +136,17 @@ QRectF NodeGraphic::boundingRect() const
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");
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->drawRoundedRect(bodyRect_, 5, 5);

View File

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

View File

@@ -1,6 +1,8 @@
#include "gui/viewport/Viewport.h"
#include <qboxlayout.h>
#include <qpushbutton.h>
#include <iostream>
#include <QTimer>
Viewport::Viewport(QWidget *parent, Qt::WindowFlags f)
: QWidget(parent, f)
@@ -8,7 +10,15 @@ Viewport::Viewport(QWidget *parent, Qt::WindowFlags f)
mainLayout_=new QVBoxLayout();
openGLWidget_ = new MyGLWidget(this);
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_);
}