Initial commit (project based on widgets)
This commit is contained in:
76
customlefttabbarbutton.cpp
Normal file
76
customlefttabbarbutton.cpp
Normal file
@@ -0,0 +1,76 @@
|
||||
#include "customlefttabbarbutton.h"
|
||||
|
||||
CustomLeftTabBarButton::CustomLeftTabBarButton(QWidget* parent) : QPushButton(parent)
|
||||
{
|
||||
QIcon i = this->icon();
|
||||
QPixmap p = i.pixmap(5, 5);
|
||||
m_pixmap = this->icon().pixmap(this->icon().actualSize(QSize(5, 5)));
|
||||
}
|
||||
|
||||
CustomLeftTabBarButton::~CustomLeftTabBarButton()
|
||||
{
|
||||
}
|
||||
|
||||
QSize CustomLeftTabBarButton::sizeHint() const
|
||||
{
|
||||
const auto parentHint = QPushButton::sizeHint();
|
||||
// add margins here if needed
|
||||
return QSize
|
||||
(
|
||||
parentHint.width() + m_pixmap.width() ,
|
||||
std::max(parentHint.height(), m_pixmap.height())
|
||||
);
|
||||
}
|
||||
|
||||
void CustomLeftTabBarButton::setPixmap(const QPixmap& pixmap)
|
||||
{
|
||||
m_pixmap = pixmap;
|
||||
}
|
||||
|
||||
void CustomLeftTabBarButton::setPos(const QSize& pos)
|
||||
{
|
||||
m_pixmapPos = pos;
|
||||
}
|
||||
|
||||
void CustomLeftTabBarButton::setIconStringForButton(QString iconString)
|
||||
{
|
||||
QIcon i = QIcon(iconString); //":/res/lock-icon-closed.png");
|
||||
int sz = 20;
|
||||
QSize size (sz , sz);
|
||||
//= iconSize();
|
||||
i.actualSize(size);
|
||||
QPixmap p = i.pixmap(sz);
|
||||
m_pixmap = p;
|
||||
this->setPixmap(p);
|
||||
}
|
||||
|
||||
|
||||
void CustomLeftTabBarButton::paintEvent(QPaintEvent* e)
|
||||
{
|
||||
// Draw the button first
|
||||
QPushButton::paintEvent(e);
|
||||
|
||||
if (!m_pixmap.isNull())
|
||||
{
|
||||
bool isTextEmpty = (text()=="");
|
||||
|
||||
{
|
||||
//const int y = (height() - m_pixmap.height()) / 2; // add margin if needed
|
||||
int h_btn_half = height() / 2;
|
||||
int h_icon_half = m_pixmap.height() / 2;
|
||||
int w_btn_half = width() / 2;
|
||||
int w_icon_half = m_pixmap.width() / 2;
|
||||
int w_btn_tenth = width() / 10;
|
||||
|
||||
QPainter painter(this);
|
||||
painter.drawPixmap
|
||||
(
|
||||
isTextEmpty
|
||||
? w_btn_half - w_icon_half
|
||||
: 40
|
||||
, h_btn_half - h_icon_half
|
||||
, m_pixmap
|
||||
); // hardcoded horizontal margin
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user