Как добавить кнопку закрытия в PushButton

Возможно ли добавить кнопку закрытия во внутрь кнопки PushButton?

Пример картинку как хочу сделать прикрепил.

Пример как надо сделать


Ответы (1 шт):

Автор решения: S. Nick

Я понял вашу задумку так:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *


class ToolButton(QtWidgets.QWidget):
    def __init__(self, text, path_icon, parent=None):
        super(ToolButton, self).__init__(parent)
        lay = QtWidgets.QVBoxLayout(self)
        self.toolButton = QtWidgets.QToolButton()
        self.toolButton.setIcon(QtGui.QIcon(path_icon))
        self.toolButton.setIconSize(QtCore.QSize(227, 238))
        label = QtWidgets.QLabel(text)
        lay.addWidget(self.toolButton, 0, QtCore.Qt.AlignCenter)
        lay.addWidget(label, 0, QtCore.Qt.AlignCenter)


class Widget(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Widget, self).__init__(parent)

        self.btn = ToolButton("btnClose", "btnClose.png")         
        self.btn.toolButton.clicked.connect(lambda: print('Hello "btnClose"'))
        
        vlay = QtWidgets.QVBoxLayout(self)
        vlay.addWidget(self.btn)
        vlay.addStretch()

        button = QPushButton('r', self.btn.toolButton, font=QFont('Webdings'))
        button.setMinimumSize(38, 38)
        button.setMaximumSize(38, 38)
        button.setObjectName('buttonClose')
        button.move(173, 30)
        button.clicked.connect(lambda: print('Hello "buttonClose"'))


Style = """
#buttonClose {
    border-radius: 19px;
}
#buttonClose:hover {
    color: white;
    background: rgb(232, 17, 35);
}
#buttonClose:pressed {
    color: white;
    background: rgb(165, 69, 106);
}    
"""            

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    app.setStyleSheet(Style)
    w = Widget()
    w.resize(640, 480)
    w.show()
    sys.exit(app.exec_())

введите сюда описание изображения

введите сюда описание изображения

→ Ссылка