#include "customTab.h" #include "qlabel.h" #include #include #include CustomTab::CustomTab(QWidget* parent) :QWidget(parent) { m_pTitle = new QLabel(this); m_IconSize = QSize(16,16); m_pIconLabel = new QLabel(this); m_pIconLabel->setMinimumSize(m_IconSize); m_pIconLabel->setMaximumSize(m_IconSize); m_pCloseBtn = new QPushButton(this); connect(m_pCloseBtn, &QPushButton::clicked, this, &CustomTab::onCloseButtonClicked); m_pCloseBtn->setMinimumSize(m_IconSize); m_pCloseBtn->setMaximumSize(m_IconSize); m_pCloseBtn->setStyleSheet("QPushButton\n" "{\n" " border-image: url(:/img/images/btn_close_default.png);\n" "}\n" "QPushButton:hover\n" "{\n" " border-image: url(:/img/images/btn_close_hover.png);\n" "}\n" "QPushButton:pressed\n" "{\n" " border-image: url(:/img/images/btn_close_pressed.png);\n" "}"); m_pLayout = new QBoxLayout(QBoxLayout::LeftToRight); m_pLayout->setContentsMargins(9, 0, 0, 9); m_pLayout->setSpacing(1); m_pLayout->addWidget(m_pIconLabel); m_pLayout->addWidget(m_pTitle); m_pLayout->addWidget(m_pCloseBtn); setLayout(m_pLayout); m_pCloseBtn->hide(); } CustomTab::~CustomTab() { } void CustomTab::enterEvent(QEnterEvent* event) { m_pCloseBtn->show(); } void CustomTab::leaveEvent(QEvent* event) { m_pCloseBtn->hide(); } void CustomTab::onCloseButtonClicked() { emit closeTab(this); }