Designing a Qt Creator's SideBar in C++

Viewed 5611

I have created a class for making a sidebar just like in Qt Creator (one to the left). I am having no idea now to make it look exactly like the one in Qt creator as mine looks ugly!

The sidebar.h:

#ifndef _SIDEBAR_H_
#define _SIDEBAR_H_

#include <QVector>
#include <QString>

#include <QWidget>
#include <QLabel>
#include <QVBoxLayout>
#include <QPixmap>

#include <iostream>

class SideBar : public QWidget
{
public:
    SideBar(QWidget *parent=nullptr);

    void addIcon(const char *name);
    void addIcon(QString &name);

private:
    QVBoxLayout *_layout;
};

#endif // SIDEBAR_H

The sidebar.cpp

#include "sidebar.h"

#include <QPushButton>
#include <QIcon>

SideBar::SideBar(QWidget *parent) : QWidget(parent)
{
    _layout = new QVBoxLayout(this);
    setLayout(_layout);
}

void SideBar::addIcon(const char *name)
{
    QString str(name);
    addIcon(str);
}

void SideBar::addIcon(QString &file)
{
    QPushButton *button = new QPushButton(this);

    QPixmap pixmap(file);
    QIcon buttonIcon(pixmap);

    button->setIcon(buttonIcon);
    // button->setIconSize(pixmap.rect().size());

    _layout->addWidget(button);
}

This is one i want:

enter image description here

And this is one i got:

enter image description here

1 Answers
Related