Как убрать задний фон у кнопки, но оставить границу
Возникла проблема, мне нужно убрать задний фон у кнопки.
Я использовал метод 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_())



