feat: Implement Fusion360-style tabbed menu with icons for CAD tools
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
@@ -2,14 +2,56 @@
|
||||
#include "ViewportWidget.h"
|
||||
|
||||
#include <QToolBar>
|
||||
#include <QTabWidget>
|
||||
#include <QWidget>
|
||||
#include <QHBoxLayout>
|
||||
#include <QToolButton>
|
||||
#include <QIcon>
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
{
|
||||
setWindowTitle("OpenCAD");
|
||||
resize(800, 600);
|
||||
resize(1280, 720);
|
||||
|
||||
QToolBar *toolBar = addToolBar("Tools");
|
||||
QToolBar* mainToolBar = addToolBar("Main Toolbar");
|
||||
mainToolBar->setMovable(false);
|
||||
mainToolBar->setFloatable(false);
|
||||
mainToolBar->setStyleSheet("QToolBar { border: 0px }");
|
||||
|
||||
QTabWidget *tabWidget = new QTabWidget();
|
||||
mainToolBar->addWidget(tabWidget);
|
||||
|
||||
// --- SOLID Tab ---
|
||||
QWidget *solidTab = new QWidget();
|
||||
QHBoxLayout *solidLayout = new QHBoxLayout(solidTab);
|
||||
solidLayout->setContentsMargins(5, 5, 5, 5);
|
||||
solidLayout->setSpacing(5);
|
||||
solidLayout->setAlignment(Qt::AlignLeft);
|
||||
|
||||
QToolButton *createSketchButton = new QToolButton();
|
||||
createSketchButton->setText("Create Sketch");
|
||||
createSketchButton->setIcon(QIcon(":/icons/create-sketch.svg"));
|
||||
createSketchButton->setIconSize(QSize(48, 48));
|
||||
createSketchButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
|
||||
solidLayout->addWidget(createSketchButton);
|
||||
|
||||
QToolButton *extrudeButton = new QToolButton();
|
||||
extrudeButton->setText("Extrude");
|
||||
extrudeButton->setIcon(QIcon(":/icons/extrude.svg"));
|
||||
extrudeButton->setIconSize(QSize(48, 48));
|
||||
extrudeButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
|
||||
solidLayout->addWidget(extrudeButton);
|
||||
|
||||
tabWidget->addTab(solidTab, "SOLID");
|
||||
|
||||
// --- SURFACE Tab ---
|
||||
QWidget *surfaceTab = new QWidget();
|
||||
tabWidget->addTab(surfaceTab, "SURFACE");
|
||||
|
||||
// --- TOOLS Tab ---
|
||||
QWidget *toolsTab = new QWidget();
|
||||
tabWidget->addTab(toolsTab, "TOOLS");
|
||||
|
||||
ViewportWidget *viewport = new ViewportWidget;
|
||||
setCentralWidget(viewport);
|
||||
|
||||
Reference in New Issue
Block a user