Как убрать задний фон у кнопки, но оставить границу

Возникла проблема, мне нужно убрать задний фон у кнопки.

Я использовал метод setFlat(True), но он скрывает и границу, можно ли оставить границу, желательно граница с пунктиром.

Задний фон не однородный например:

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

import sys
from PyQt5.QtWidgets import QAction, qApp
from PyQt5.QtGui import QIcon

from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, \
    QPushButton, QLineEdit, QRadioButton, QGridLayout, QLabel, QHBoxLayout, QVBoxLayout, QMessageBox, QFileDialog


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.bott = QPushButton(self)
        self.bott.setText("push")
        self.bott.move(10, 10)
        self.bott.setFlat(True)
        self.initUI()

    def initUI(self):
        pass


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

Какой есть

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

Какой нужно получить

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

Ну или хотя бы обычную границу.


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

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

Используйте StyleSheet:

import sys
from PyQt5.QtWidgets import QAction, qApp
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, \
    QPushButton, QLineEdit, QRadioButton, QGridLayout, QLabel, \
    QHBoxLayout, QVBoxLayout, QMessageBox, QFileDialog


class Example(QMainWindow):
    def __init__(self):
        super().__init__()

        self.bott = QPushButton(self)
        self.bott.setText("push")
        self.bott.move(10, 10)
        self.bott.setFlat(True)
        
        self.bott.setStyleSheet("""
            QPushButton {
                background-color: transparent; 
                border-radius: 5px;
                border: 2px dashed red;
            }
            QPushButton:hover:pressed {
                background-color: #FF6B6B;
                color: #fff;    
                border: 2px solid #11052C;
            }
            QPushButton:hover {
                background-color: #0ff;
                border: 2px solid #FFA6D5;
            }
        """) 
        
        self.initUI()

    def initUI(self):
        pass


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

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

→ Ссылка